13.3 Steuerelemente
Das Projekt MASteuerelemente in diesem Abschnitt basiert ebenfalls auf der Projektvorlage Blank. Es werden einige Layout- und Steuerelemente innerhalb einer Windows Store-App gezeigt. Sie kennen diese Elemente bereits aus 12. Ohne die Nutzung der Stile für Windows Store-Apps sehen sie ungewohnt aus, siehe Abbildung 13.4, funktionieren aber genauso.
Abbildung 13.4 Projekt »MASteuerelemente«
Links sehen Sie einen Button, eine Checkbox, eine PasswordBox, eine TextBox und zwei RadioButton. Rechts schließen sich eine Listbox, ein Slider und ein TextBlock an. Die Bedienung der Elemente führt zu Ereignisprozeduren. Darin wiederum werden Ausgaben im TextBlock erzeugt. Zunächst der Code in der Datei MainPage.xaml:
<Page x:Class="MASteuerelemente.MainPage" ... >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="200" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<StackPanel Grid.Column="0">
<Button Click="bu_Click" Width="150"
Margin="5">Button</Button>
<CheckBox Checked="cb_Checked" Unchecked=
"cb_Unchecked" Margin="5">CheckBox</CheckBox>
<PasswordBox x:Name="pb" LostFocus="pb_LostFocus"
HorizontalAlignment="Left" Width="150" Margin="5" />
<TextBox x:Name="tx" LostFocus="tx_LostFocus"
HorizontalAlignment="Left" Width="150" Margin="5" />
<RadioButton Click="rb1_Click"
Margin="5">Auswahl 1</RadioButton>
<RadioButton Click="rb2_Click"
Margin="5">Auswahl 2</RadioButton>
</StackPanel>
<StackPanel Grid.Column="1">
<ListBox x:Name="lb"
SelectionChanged="lb_SelectionChanged"
HorizontalAlignment="Left" Width="150" Margin="5">
<ListBoxItem>Eintrag 0</ListBoxItem>
<ListBoxItem>Eintrag 1</ListBoxItem>
<ListBoxItem>Eintrag 2</ListBoxItem>
</ListBox>
<Slider x:Name="sl" ValueChanged="sl_ValueChanged"
HorizontalAlignment="Left" Maximum="10"
Width="150" Margin="5" />
<TextBlock x:Name="tk" FontSize="16"
Margin="5">TextBlock</TextBlock>
</StackPanel>
</Grid>
</Page>
Listing 13.3 Projekt »MASteuerelemente«, Datei XAML-Code
Die Seite besteht aus einem Grid mit zwei Spalten. Jede Spalte beinhaltet ein StackPanel mit den Steuerelementen. Die Eigenschaften Width, Margin und HorizontalAlignment dienen zur Angabe der Breite, des Außenabstands und der horizontalen Ausrichtung innerhalb des umgebenden Elements.
Die Ereignisse Click, Checked, Unchecked, LostFocus, SelectionChanged und ValueChanged führen zu Ereignisprozeduren. Das Ereignis LostFocus bei der PasswordBox und der TextBox tritt ein, sobald ein anderes Element nach Verlassen der jeweiligen Box aktiviert worden ist. Es folgen die Prozeduren zu diesen Ereignissen, in der Datei MainPage.xaml.vb:
Private Sub bu_Click(sender As Object, e As RoutedEventArgs)
tk.Text = "Button geklickt"
End Sub
Private Sub cb_Checked(sender As Object,
e As RoutedEventArgs)
tk.Text = "CheckBox ein"
End Sub
Private Sub cb_Unchecked(sender As Object,
e As RoutedEventArgs)
tk.Text = "CheckBox aus"
End Sub
Private Sub lb_SelectionChanged(sender As Object,
e As SelectionChangedEventArgs)
tk.Text = lb.SelectedIndex
End Sub
Private Sub pb_LostFocus(sender As Object,
e As RoutedEventArgs)
tk.Text = pb.Password
End Sub
Private Sub rb1_Click(sender As Object,
e As RoutedEventArgs)
tk.Text = "Auswahl 1"
End Sub
Private Sub rb2_Click(sender As Object,
e As RoutedEventArgs)
tk.Text = "Auswahl 2"
End Sub
Private Sub sl_ValueChanged(sender As Object,
e As RangeBaseValueChangedEventArgs)
tk.Text = sl.Value
End Sub
Private Sub tx_LostFocus(sender As Object,
e As RoutedEventArgs)
tk.Text = tx.Text
End Sub
Listing 13.4 Projekt »MASteuerelemente«, Programmcode
In der TextBox wird jeweils der entsprechende Text zu den Ereignissen ausgegeben. Die ListBox liefert mit SelectedIndex die Nummer des ausgewählten Elements, der Slider mit Value den eingestellten Wert.
Ihre Meinung
Wie hat Ihnen das Openbook gefallen? Wir freuen uns immer über Ihre Rückmeldung. Schreiben Sie uns gerne Ihr Feedback als E-Mail an kommunikation@rheinwerk-verlag.de.