Kihagyás

Grafikus alkalmazások WPF-fel

A konzolos programok után grafikus asztali alkalmazást készítünk. A JavaFX témáinak C#-beli megfelelőjéhez a WPF-et (Windows Presentation Foundation) használjuk. A WPF-ben a felületet XAML írja le, a működést C# kód adja. Pythonban hasonló feladatra például a Tkinter használható, de a felület leírása és az eszközök eltérnek.

Előfeltételek

A WPF Windows rendszeren fut. Szükség van telepített .NET SDK-ra és Windows asztali fejlesztést támogató környezetre, például Visual Studióra. Az SDK ellenőrzése: dotnet --version.

Terminálból új WPF-projekt:

dotnet new wpf -n HelloWpf
cd HelloWpf
dotnet run

Visual Studióban a WPF Application projekt sablont válasszuk. A projekt létrehozásakor a keretrendszer célja Windows (net...-windows), a projektfájlban a UseWPF beállítás aktív.

A projekt felépítése

HelloWpf/
├── HelloWpf.csproj
├── App.xaml
├── App.xaml.cs
├── MainWindow.xaml
└── MainWindow.xaml.cs
  • App.xaml: az alkalmazás erőforrásai és az induló ablak (StartupUri).
  • MainWindow.xaml: a főablak elemei és elrendezése.
  • MainWindow.xaml.cs: a főablak C# rész-osztálya, benne az eseménykezelőkkel.
  • HelloWpf.csproj: a projekt beállításai.

A JavaFX-ben a HelloApplication, a hello-view.fxml és a HelloController külön szerepet kap. A WPF-ben a felület és a hozzá tartozó kód a MainWindow.xaml és MainWindow.xaml.cs fájlpárban áll; a .cs fájlban a konstruktor InitializeComponent() hívása tölti be a XAML-ben leírt elemeket.

flowchart TD
    A[App.xaml] --> B[MainWindow.xaml]
    B <--> C[MainWindow.xaml.cs]

Első ablak

Az új projekt MainWindow.xaml fájlját cseréljük erre:

MainWindow.xaml
<Window x:Class="HelloWpf.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="Első WPF program" Height="240" Width="360">
    <Grid>
        <TextBlock Text="Hello World!"
                   HorizontalAlignment="Center"
                   VerticalAlignment="Center"
                   FontSize="24" />
    </Grid>
</Window>

Futtatáskor egy ablak jelenik meg középen a „Hello World!” felirattal. A XAML attribútumai a C# objektumok tulajdonságainak felelnek meg. A következő fejezetben gombot, beviteli mezőt és táblázatot adunk az ablakhoz.