Szukaj…
Prosta siatka
<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>
Wiersze i kolumny są definiowane przez dodanie elementów RowDefinition
i ColumnDefinition
do odpowiednich kolekcji.
Nie może być abitrary ilość dzieci w Grid
. Aby określić, który wiersz lub kolumnę należy umieścić w dołączonych właściwościach Grid.Row
i Grid.Column
. Numery wierszy i kolumn są zerowe. Jeśli nie jest ustawiony żaden wiersz ani kolumna, domyślnie jest to 0
.
Dzieci umieszczone w tym samym rzędzie i kolumnie są rysowane w kolejności definicji. Dziecko zdefiniowane jako ostatnie zostanie narysowane powyżej dziecka zdefiniowanego wcześniej.
Dzieci siatki obejmujące wiele wierszy / kolumn
Korzystając z właściwości dołączonych Grid.RowSpan
i Grid.ColumnSpan
Grid.RowSpan
Grid.ColumnSpan
Grid
mogą rozciągać się na wiele wierszy lub kolumn. W poniższym przykładzie drugi TextBlock
obejmie drugą i trzecią kolumnę 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>
Synchronizowanie wierszy lub kolumn wielu siatek
W heigths szerokości wiersza lub kolumny stwardnienia Grid
S może być synchronizowane przez ustawienie wspólnej SharedSizeGroup
w rzędach lub kolumnach zsynchronizować. Następnie kontrola nadrzędna gdzieś w drzewie powyżej Grid
musi mieć ustawioną właściwość Grid.IsSharedSizeScope
na 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>
W tym przykładzie pierwsza kolumna obu Grid
będzie zawsze miała tę samą szerokość, także gdy rozmiar jednej z nich zostanie zmieniony.