Quando si definisce una colonna in una griglia WPF è possibile impostare la larghezza su uno dei tre valori possibili:
- Una larghezza fissa,
Auto
- la colonna diventerà larga quanto necessario per adattarsi ai suoi figli, o
*
(stella) occupa lo spazio rimanente disponibile
Il *
è preceduto da un numero (il valore predefinito è 1 se non viene specificato alcun numero). Lo spazio disponibile viene suddiviso tra le colonne contrassegnate da una stella in proporzione al numero del prefisso.
Se hai questa definizione
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
La prima colonna otterrà il 7% dello spazio totale disponibile e la seconda colonna otterrà il 93%. D'altra parte se avessi questa definizione:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
La prima colonna otterrebbe 1/3 e la seconda 2/3 dello spazio disponibile.
Nel tuo caso specifico in cui la larghezza della griglia è 354 e le proporzioni delle due colonne sono 40 e 314 ottieni le seguenti larghezze di colonna:
Larghezza prima colonna = 40 / (40 + 314) * 354 = 40
Larghezza seconda bobina = 314 / (40 + 314) * 354 = 314
La larghezza della stella viene utilizzata al meglio quando la larghezza della griglia non è fissa. Quando la griglia viene ridimensionata, le colonne verranno ridimensionate proporzionalmente come specificato dalle larghezze delle stelle. Nel tuo caso la larghezza della griglia è fissa e potresti altrettanto facilmente utilizzare colonne a larghezza fissa.
Se vuoi un layout in cui la seconda colonna è il doppio della larghezza della prima e la terza colonna è il triplo della larghezza della prima, hai bisogno di questa definizione:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
Se la larghezza totale della griglia è 300, si ottengono larghezze di colonna 50, 100 e 150. Se la larghezza totale della griglia è 600, si ottengono larghezze di colonna 100, 200 e 300. E così via.