Quelle est la signification de * (astérisque) dans le XAML ci-dessous?
<ColumnDefinition Width="0.07*"/>
<Grid Height="100" HorizontalAlignment="Left"
Margin="102,134,0,0"
Name="grid1" VerticalAlignment="Top"
Width="354">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40*" />
<ColumnDefinition Width="314*" />
</Grid.ColumnDefinitions>
</Grid>
Réponses:
Lorsque vous définissez une colonne dans une grille WPF, vous pouvez définir la largeur sur l'une des trois valeurs possibles:
Auto
- la colonne deviendra aussi large que nécessaire pour s'adapter à ses enfants, ou*
(étoile) occupe tout l'espace restant disponibleLe
*
est précédé d'un nombre (la valeur par défaut est 1 si aucun nombre n'est spécifié). L'espace disponible est divisé entre les colonnes étoilées proportionnellement au numéro de préfixe.Si vous avez cette définition
La première colonne obtiendra 7% de l'espace total disponible et la deuxième colonne 93%. Par contre si vous aviez cette définition:
La première colonne obtiendrait 1/3 et la seconde 2/3 de l'espace disponible.
Dans votre cas spécifique où la largeur de la grille est de 354 et les proportions des deux colonnes sont de 40 et 314, vous obtenez les largeurs de colonne suivantes:
La largeur de l'étoile est mieux utilisée lorsque la largeur de la grille n'est pas fixe. Lorsque la grille est redimensionnée, les colonnes seront alors mises à l'échelle proportionnellement comme spécifié par les largeurs d'étoile. Dans votre cas, la largeur de la grille est fixe et vous pourriez tout aussi bien avoir utilisé des colonnes à largeur fixe.
Si vous voulez une mise en page où la deuxième colonne est le double de la largeur de la première et la troisième colonne est le triple de la largeur de la première, vous avez besoin de cette définition:
Si la largeur totale de la grille est de 300, vous obtenez des largeurs de colonne de 50, 100 et 150. Si la largeur totale de la grille est de 600, vous obtenez des largeurs de colonne de 100, 200 et 300. Et ainsi de suite.
la source
Son rapport de 0,07 par rapport à toute autre colonne de largeur en étoile - c'est-à-dire si une autre définition de colonne a une largeur de 0,14, cette colonne est le double de la largeur = tout est question de rations
la source
Il crée des tailles de colonne à l'aide de ratios. Si vous aviez une autre définition comme
<ColumnDefinition Width="0.03*"/>
la première colonne prendrait 70% de l'espace et la seconde prendrait 30%.la source
la source