В html можно сказать width = "20%". Конечно, это не допускается в XAML. Кто-нибудь знает, почему это так или есть способ получить поддержку процентных значений в XAML?
Можно ли использовать процентные значения в XAML?
Ответ 1
Grid ColumnDefinitions и RowDefinitions позволяют использовать пропорциональные единицы (в дополнение к фиксированным пикселям и авто).
Вот два примера:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="20" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
Первый столбец будет настолько большим, насколько это необходимо, чтобы соответствовать всем содержимым в столбце. Следующий столбец - 20 независимых от устройства пикселей. Оставшаяся ширина сетки будет поделена поровну между оставшимися столбцами. (100%/4 = 25% в каждом)
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="4*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
Этот код разделит 4 столбца на 10%, 40%, 40% и 10% от общей ширины сетки.