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.
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¶
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.
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.
<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.
<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>