20.9 Verschachtelung
Layout-Container können beliebige Steuerelemente aufnehmen, auch beliebige Container. Durch dieses Prinzip können Sie mit einer kleinen Zahl an Grundbausteinen Schachtelungen beliebiger Komplexität erzeugen, mit denen Sie beliebige Designforderungen erfüllen können. Beim Entwurf können Sie einen Bottom-Up-Ansatz wählen und aus kleinen Einheiten immer komplexere aufbauen oder mit einem Top-Down-Ansatz eine grobe Struktur immer weiter verfeinern. Durch das hierarchische Baukastensystem der Container verlieren Sie nicht so schnell den Überblick. Ich habe mich nach einer kurzen Eingewöhnungszeit gefragt, wie ich vorher ohne diese Hierarchisierung ausgekommen bin.
Das folgende Beispiel gibt einen ersten Eindruck von Verschachtelungen. Die Bedeutung der noch nicht besprochenen Steuerelemente ist nicht von Belang. Es soll nur die Hierarchisierung demonstriert werden. Abbildung 20.24 zeigt das Aussehen des Beispiels.
Abbildung 20.24 Verschachtelung
Im Window sind neben mehreren Buttons auch zwei Checkboxen, zwei Radiobuttons, eine Listbox und ein Label enthalten. Um eine solche Form zu gestalten, werden Sie zumindest am Anfang noch einmal zu Papier und Bleistift greifen. Lösungen gibt es viele. Ich möchte Ihnen an dieser Stelle die folgende zeigen.
<DockPanel> <StackPanel DockPanel.Dock="Bottom" Height="Auto" HorizontalAlignment="Right" Orientation="Horizontal"> <Button Width="100" Margin="3">OK</Button> <Button Width="100" 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">Fett</CheckBox> <RadioButton Margin="2" Grid.Row="0" Grid.Column="1">Schwarz</RadioButton> <CheckBox Margin="2" Grid.Row="1" Grid.Column="0">Kursiv</CheckBox> <RadioButton Margin="2" Grid.Row="1" Grid.Column="1">Blau</RadioButton> </Grid> <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="256.8*" /> <ColumnDefinition Width="97.2*" MinWidth="56" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" MinHeight="2" /> <RowDefinition /> <RowDefinition Height="11"/> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0">Ausgabe aller befreundeten Personen:</Label> <ListBox Margin="5,5,11.8,5" Grid.Row="1"> <ListBoxItem>Peter</ListBoxItem> <ListBoxItem>Andreas</ListBoxItem> <ListBoxItem>Petra</ListBoxItem> <ListBoxItem>Franz</ListBoxItem> <ListBoxItem>Beate</ListBoxItem> </ListBox> <StackPanel Grid.Row="1" Grid.Column="1"> <Button Margin="3">Neues Element</Button> <Button Margin="3">Abbrechen</Button> </StackPanel> </Grid> </DockPanel>
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.