web-dev-qa-db-fra.com

Que signifie RowDefinition Height = "10 *" dans une grille XAML?

J'utilise un peu Height = "*" pour signifier que la hauteur de la dernière ligne doit remplir jusqu'au bas de la grille.

Mais que signifie "10 *"?

<Grid Name="mainGrid">
    <Grid.RowDefinitions>
        <RowDefinition Height="100" />
        <RowDefinition Height="40" />
        <RowDefinition Height="10*" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="200"  />
        <ColumnDefinition Width="*" />
    </Grid.ColumnDefinitions>
</Grid>
63
Edward Tanguay

"*" est un raccourci pour "1*". C'est un rapport, donc si vous avez deux lignes, une avec "*" et un avec "10*", le premier obtient 1/11ème de l'espace disponible et le dernier 10/11ème de l'espace.

Dans votre exemple ci-dessus, "10*" n'est pas nécessaire - "*" aurait plus de sens car il n'y a qu'une seule ligne utilisant un dimensionnement basé sur des ratios, donc tout ratio équivaudra à 100% de l'espace disponible.

103
Kent Boogaart

J'ai trouvé les informations ci-dessous de Christian Mosers utiles car les tailles Auto et Fixed sur les autres lignes ou colonnes de cellules influenceront le comportement de la taille *. Voir http://wpftutorial.net/GridLayout.html


Fixe Taille fixe des unités logiques (1/96 pouce)

Auto Prend autant d'espace que nécessaire pour le contrôle contenu

Étoile (*) Prend autant d'espace que disponible (après avoir rempli toutes les colonnes de taille automatique et fixe), proportionnellement réparties sur toutes les colonnes de taille étoile. Donc 3 */5 * signifie la même chose que 30 */50 *. N'oubliez pas que le dimensionnement en étoile ne fonctionne pas si la taille de la grille est calculée en fonction de son contenu.

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto" />
        <RowDefinition Height="Auto" />
        <RowDefinition Height="*" />
        <RowDefinition Height="28" />
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition Width="200" />
    </Grid.ColumnDefinitions>
</Grid>
22
levteck