wpf
Controllo della griglia
Ricerca…
Una semplice griglia
<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>
Righe e colonne vengono definite aggiungendo ColumnDefinition
elementi RowDefinition
e ColumnDefinition
alle raccolte corrispondenti.
Ci può essere una quantità abituale di bambini nella Grid
. Per specificare quale riga o colonna deve essere posizionato un figlio nelle proprietà associate, Grid.Row
e Grid.Column
vengono utilizzate. I numeri di riga e colonna sono a base zero. Se nessuna riga o colonna è impostata, il suo valore predefinito è 0
.
I bambini posizionati nella stessa riga e colonna sono disegnati in ordine di definizione. Quindi il bambino definito per ultimo sarà disegnato sopra il bambino definito in precedenza.
Grid per bambini che si estendono su più righe / colonne
Utilizzando le proprietà allegate Grid.RowSpan
e Grid.ColumnSpan
, i figli di una Grid
possono estendersi su più righe o colonne. Nell'esempio seguente il secondo TextBlock
coprirà la seconda e la terza colonna della 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>
Sincronizzazione di righe o colonne di più griglie
Le altezze di riga o larghezza delle colonne di multipli Grid
s possono essere sincronizzati impostando un comune SharedSizeGroup
sulle righe o colonne da sincronizzare. Quindi un controllo genitore da qualche parte nella struttura sopra la Grid
deve avere la proprietà allegata Grid.IsSharedSizeScope
impostata su 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 questo esempio, la prima colonna di entrambi i Grid
avrà sempre la stessa larghezza, anche quando uno di essi viene ridimensionato dal suo contenuto.