Cuando define una columna en una cuadrícula de WPF, puede establecer el ancho en uno de los tres valores posibles:
- Un ancho fijo,
Auto
- la columna será tan ancha como sea necesario para adaptarse a sus hijos, o
*
(estrella) ocupa cualquier espacio restante disponible
El *
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
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
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:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
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:
Ancho de la primera columna = 40 / (40 + 314) * 354 = 40
Segundo ancho de canal = 314 / (40 + 314) * 354 = 314
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:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
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.