¿Cuál es el significado de * (asterisco) en el XAML a continuación?
<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>
Respuestas:
Cuando define una columna en una cuadrícula de WPF, puede establecer el ancho en uno de los tres valores posibles:
Auto
- la columna será tan ancha como sea necesario para adaptarse a sus hijos, o*
(estrella) ocupa cualquier espacio restante disponibleEl
*
es prefijado por un número (por defecto es 1 si no se especifica ningún número). El espacio disponible se divide entre las columnas destacadas en proporción al número de prefijo.Si tienes esta definición
La primera columna obtendrá el 7% del espacio total disponible y la segunda columna obtendrá el 93%. Por otro lado, si tuvieras esta definición:
La primera columna obtendría 1/3 y la segunda 2/3 del espacio disponible.
En su caso específico, donde el ancho de la cuadrícula es 354 y las proporciones de las dos columnas son 40 y 314, obtiene los siguientes anchos de columna:
El ancho de la estrella se usa mejor cuando el ancho de la cuadrícula no es fijo. Cuando se cambia el tamaño de la cuadrícula, las columnas se escalarán proporcionalmente según lo especificado por el ancho de las estrellas. En su caso, el ancho de la cuadrícula es fijo y podría haber usado columnas de ancho fijo con la misma facilidad.
Si desea un diseño donde la segunda columna tiene el doble de ancho que la primera y la tercera columna es el triple del ancho de la primera, necesita esta definición:
Si el ancho total de la cuadrícula es 300 obtienes anchos de columna 50, 100 y 150. Si el ancho total de la cuadrícula es 600 obtienes anchos de columna 100, 200 y 300. Y así sucesivamente.
fuente
Su relación de 0.07 con cualquier otra columna de ancho de estrella, es decir, si otra ColomnDefinition tiene un Ancho de 0.14, entonces esa columna es el doble del ancho = todo se trata de raciones
fuente
Crea tamaños de columna usando proporciones. Si tuviera otra definición como
<ColumnDefinition Width="0.03*"/>
la primera columna ocuparía el 70% del espacio y la segunda ocuparía el 30%.fuente
fuente