Suche…
Ein einfaches Gitter
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="1" Text="abc"/>
<TextBlock Grid.Row="1" Grid.Column="1" Text="def"/>
</Grid>
Zeilen und Spalten werden definiert, indem den entsprechenden Sammlungen RowDefinition
und ColumnDefinition
Elemente ColumnDefinition
werden.
Es können beliebig viele Kinder im Grid
. Um anzugeben, welche Zeile oder Spalte ein Grid.Row
Grid.Column
in den angefügten Eigenschaften Grid.Row
und Grid.Column
werden diese verwendet. Zeilen- und Spaltennummern basieren auf Null. Wenn keine Zeile oder Spalte gesetzt ist, ist der Standardwert 0
.
In derselben Zeile und Spalte platzierte Kinder werden in der Definitionsreihenfolge gezeichnet. Das zuletzt definierte Kind wird also über das zuvor definierte Kind gezeichnet.
Gitterkinder, die sich über mehrere Zeilen / Spalten erstrecken
Durch die Verwendung der Grid.RowSpan
und Grid.ColumnSpan
angefügten Eigenschaften, Kinder eines Grid
können mehrere Zeilen oder Spalten erstrecken. In dem folgenden Beispiel wird die zweite TextBlock
wird die zweite und dritte Spalte der Spannweite Grid
.
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="2" Text="abc"/>
<TextBlock Grid.Column="1" Grid.ColumnSpan="2" Text="def"/>
</Grid>
Zeilen oder Spalten mehrerer Raster synchronisieren
Die Zeilenhöhen oder Spaltenbreiten mehrerer Grid
können synchronisiert werden, indem eine gemeinsame SharedSizeGroup
für die zu synchronisierenden Zeilen oder Spalten festgelegt wird. Dann muss ein übergeordnetes Steuerelement oben in der Baumstruktur oberhalb der Grid
die angefügte Eigenschaft Grid.IsSharedSizeScope
auf True
.
<StackPanel Grid.IsSharedSizeScope="True">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="MyGroup"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
[...]
</Grid>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" SharedSizeGroup="MyGroup"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
[...]
</Grid>
</StackPanel>
In diesem Beispiel hat die erste Spalte beider Grid
immer die gleiche Breite, auch wenn eine der beiden durch den Inhalt angepasst wird.