Kihagyás

XAML

A XAML XML-alapú felületleíró nyelv. Szerepe a WPF-ben hasonló a JavaFX FXML fájljához: a vezérlők elhelyezését és tulajdonságait a programlogikától külön írjuk le. Python Tkinter esetén a felület elemeit többnyire Python-kódban hozzuk létre.

Elrendezés

A Grid sorokba és oszlopokba rendezi az elemeket; a StackPanel sorban egymás mellé vagy alá teszi őket. A Margin külső térköz, a Padding egy vezérlő belső térköze. A WPF méretei eszközfüggetlen egységekben értendők.

<StackPanel Margin="20">
    <TextBlock Text="Írd be a neved!" />
    <TextBox Margin="0,8,0,8" />
    <Button Content="Köszönés" />
</StackPanel>

TextBlock és Label

Egyszerű felirat megjelenítésére a TextBlock alkalmas; a Label billentyűzetes hozzáférést és célvezérlőhöz kapcsolást is támogat. JavaFX-ben mindkettőhöz gyakran Label-t használunk.

<TextBlock x:Name="WelcomeText" Text="Üdvözlet!" FontSize="20" />

Az x:Name alapján a vezérlő a MainWindow.xaml.cs fájlban WelcomeText néven érhető el. A Text a megjelenített szöveg, a TextWrapping="Wrap" engedélyezi a tördelést.

Button

<Button Content="Köszönés" Click="HelloButton_Click" />

A Content a gomb felirata, a Click egy C# eseménykezelő metódus neve. Ez a JavaFX text és onAction párjához hasonló.

TextBox

A TextBox szövegbevitelre szolgál, a JavaFX TextField megfelelője. A szöveget a Text tulajdonságban tárolja.

<TextBox x:Name="NameTextBox" MaxLength="50" />

Többsoros mezőhöz AcceptsReturn="True" és TextWrapping="Wrap" adható. Jelszóhoz PasswordBox-ot használjunk.

ListBox és DataGrid

A ListBox egy listát jelenít meg; a DataGrid sorokat és oszlopokat. Ezek a JavaFX ListView és TableView szerepéhez állnak közel. A WPF DataGrid nem azonos a Windows Forms DataGridView vezérlőjével.

<ListBox x:Name="NamesList" Height="100" />
<DataGrid x:Name="StudentsGrid" AutoGenerateColumns="False" IsReadOnly="True">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Név" Binding="{Binding Nev}" />
        <DataGridTextColumn Header="Életkor" Binding="{Binding Kor}" />
    </DataGrid.Columns>
</DataGrid>

A Binding a sor objektumának nyilvános tulajdonságát olvassa. Ha a tárolt sorok száma változhat, az ObservableCollection<T> gyűjtemény automatikusan frissíti a megjelenítést. A következő fejezetben egy működő beolvasási példát építünk rá.

Teljes egyszerű felület

Ez a fájl az előző fejezet HelloWpf projektjében önállóan kipróbálható. A Click eseményhez a következő fejezetben készül C# metódus.

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="Köszönés" Height="240" Width="360">
    <StackPanel Margin="20">
        <TextBlock Text="Neved:" />
        <TextBox x:Name="NameTextBox" Margin="0,8,0,8" />
        <Button Content="Köszönés" Click="HelloButton_Click" />
        <TextBlock x:Name="WelcomeText" Margin="0,12,0,0" />
    </StackPanel>
</Window>