Коли ви визначаєте стовпець у сітці WPF, ви можете встановити ширину до одного з трьох можливих значень:
- Фіксована ширина,
Auto
- стовпець стане настільки широким, наскільки це необхідно, щоб відповідати його дітям, або
*
(зірка) займають будь-який доступний простір
*
Передує номером ( по замовчуванням 1 , якщо номер не вказаний). Наявний простір ділиться між стовпцями із зіркою пропорційно номеру префікса.
Якщо у вас є таке визначення
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.93*"/>
</Grid.ColumnDefinitions>
Перший стовпець отримає 7% від загального простору, а другий - 93%. З іншого боку, якщо у вас було таке визначення:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="0.07*"/>
<ColumnDefinition Width="0.14*"/>
</Grid.ColumnDefinitions>
Перший стовпець отримав би 1/3, а другий 2/3 наявного простору.
У вашому конкретному випадку, коли ширина сітки становить 354, а пропорції двох стовпців - 40 і 314, ви отримуєте наступні ширини стовпців:
Перша ширина стовпця = 40 / (40 + 314) * 354 = 40
Друга ширина кульмінації = 314 / (40 + 314) * 354 = 314
Ширину зірки найкраще використовувати, коли ширина сітки не фіксована. Після зміни розміру сітки стовпці будуть масштабуватися пропорційно, як зазначено шириною зірки. У вашому випадку ширина сітки фіксована, і ви могли так само легко використовувати стовпчики з фіксованою шириною.
Якщо ви хочете макет, де другий стовпець подвоюється ширині першого, а третій стовпець потрійний ширині першого, вам потрібно це визначення:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="2*"/>
<ColumnDefinition Width="3*"/>
</Grid.ColumnDefinitions>
Якщо загальна ширина сітки становить 300, ви отримуєте ширину стовпців 50, 100 і 150. Якщо загальна ширина сітки становить 600, ви отримуєте ширину стовпців 100, 200 і 300. І так далі.