19.2 Verschachteln der Layout-Container
Sie haben nun die Layout-Container und deren Einsatzmöglichkeiten kennengelernt. Wenn Sie eine etwas aufwendigere Form bereitstellen wollen, werden Sie mit ziemlicher Sicherheit nicht mit einem Layout-Container auskommen. Meistens werden Sie mehrere ineinander verschachtelte einsetzen.
Da wir nun der Reihe nach die Layout-Container mit einfachem XAML-Beispielcode im Einsatz erlebt haben, ist es an der Zeit, eine etwas aufwendigere Form zu erstellen. Darin sind mehrere Steuerelemente enthalten, über die erst gesprochen werden muss, aber zu gestalterischen Zwecken erübrigt sich an dieser Stelle wohl eine Erklärung. Zudem ist auch kein Programmcode hinterlegt, da es uns vorrangig auf die Oberflächengestaltung ankommt. Sehen wir uns das Window zur Laufzeit an (Abbildung 19.18).
Abbildung 19.18 Ausgabe des Beispielprogramms »Mitarbeiterliste«
Als dem Window direkt untergeordneter Container wird das DockPanel eingesetzt. In diesem sind mit zwei Grids und einem StackPanel insgesamt drei weitere Panels enthalten. In der letzten Zeile des zweiten Grids regelt ein StackPanel die Anordnung der beiden Schaltflächen OK und Beenden.
// Beispiel: ..\Kapitel 19\Mitarbeiterliste
<Window ... Height="300" Width="350">
<DockPanel>
<StackPanel DockPanel.Dock="Bottom" Height="Auto"
HorizontalAlignment="Right" Orientation="Horizontal">
<Button Width="80" Margin="3">OK</Button>
<Button Width="80" Margin="3">Beenden</Button>
</StackPanel>
<Grid DockPanel.Dock="Bottom" Height="Auto">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition Height="11"/>
</Grid.RowDefinitions>
<CheckBox Margin="2" Grid.Row="0" Grid.Column="0">Chef</CheckBox>
<RadioButton Margin="2" Grid.Row="0" Grid.Column="1">Frau</RadioButton>
<CheckBox Margin="2" Grid.Row="1" Grid.Column="0">
Angestellter
</CheckBox>
<RadioButton Margin="2" Grid.Row="1" Grid.Column="1" IsChecked="True">
Herr
</RadioButton>
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition />
<RowDefinition Height="11"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Background="Black"
Foreground="WhiteSmoke">Liste aller Mitarbeiter</Label>
<ListBox Margin="5,5" Grid.Row="1" Background="WhiteSmoke">
<ListBoxItem>Peter Müller</ListBoxItem>
<ListBoxItem>Andreas Fischer</ListBoxItem>
<ListBoxItem>Gernot Haltmann</ListBoxItem>
<ListBoxItem>Franz Schulze</ListBoxItem>
<ListBoxItem>Beate Meier</ListBoxItem>
</ListBox>
<StackPanel Grid.Row="1" Grid.Column="1">
<Button Margin="5">Neu ...</Button>
<Button Margin="5">Löschen</Button>
</StackPanel>
</Grid>
</DockPanel>
</Window>
Listing 19.18 Komplexer verschachtelter Layout-Container
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.