Saltar al contenido

¿Cuál es el significado de * (asterisco) en XAML ColumnDefinition?

Solución:

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

los * tiene como prefijo un número (el valor predeterminado 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:

First column width = 40/(40 + 314)*354 = 40
Second coulmn width = 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 utilizado 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, obtiene anchos de columna 50, 100 y 150. Si el ancho total de la cuadrícula es 600, obtiene anchos de columna 100, 200 y 300. Y así sucesivamente.

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

Crea tamaños de columna usando proporciones. Si tuvieras otra definición como <ColumnDefinition Width="0.03*"/> la primera columna ocuparía el 70% del espacio y la segunda ocuparía el 30%.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *