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>
"*"
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.
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>