Recherche…


Une grille simple

<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>

Les lignes et les colonnes sont définies en ajoutant des éléments RowDefinition et ColumnDefinition aux collections correspondantes.

Il peut y avoir un nombre aberrant d'enfants dans la Grid . Pour spécifier la ligne ou la colonne qu'un enfant doit placer dans les propriétés attachées, Grid.Row et Grid.Column sont utilisées. Les numéros de ligne et de colonne sont basés sur zéro. Si aucune ligne ou colonne n'est définie, la valeur par défaut est 0 .

Les enfants placés dans la même rangée et la même colonne sont dessinés par ordre de définition. Ainsi, l'enfant défini en dernier sera dessiné au-dessus de l'enfant défini auparavant.

Enfants de la grille couvrant plusieurs lignes / colonnes

En utilisant les propriétés jointes Grid.RowSpan et Grid.ColumnSpan , les enfants d'une Grid peuvent s'étendre sur plusieurs lignes ou colonnes. Dans l'exemple suivant, le second TextBlock couvrira les deuxième et troisième colonnes de la 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>

Synchronisation de lignes ou de colonnes de plusieurs grilles

Les hauteurs de ligne ou les largeurs de colonne de plusieurs Grid peuvent être synchronisées en définissant un SharedSizeGroup commun sur les lignes ou les colonnes à synchroniser. Ensuite, un contrôle parent situé dans l'arborescence au-dessus de la Grid doit avoir la propriété attachée Grid.IsSharedSizeScope définie sur 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>

Dans cet exemple, la première colonne des deux Grid aura toujours la même largeur, même si l’une d’entre elles est redimensionnée par son contenu.



Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow