«Правильный» способ сделать это, вероятно, использовать функции общего размера элемента управления Grid
, но это, к сожалению, предотвращает растяжение всей сетки. например,
<Grid Grid.IsSharedSizeScope="True">
<Grid.ColumnDefinitions>
<ColumnDefinition SharedSizeGroup="A"/>
<ColumnDefinition SharedSizeGroup="A"/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition SharedSizeGroup="A"/>
<RowDefinition SharedSizeGroup="A"/>
</Grid.RowDefinitions>
<Label Grid.Row="0" Grid.Column="0" Background="Red" Content="Lorem"/>
<Label Grid.Row="1" Grid.Column="0" Background="White" Content="Lorem ipsum"/>
<Label Grid.Row="0" Grid.Column="1" Background="White" Content="Lorem ipsum dolor"/>
<Label Grid.Row="1" Grid.Column="1" Background="Red" Content="Lorem ipsum dolor sit"/>
</Grid>
Можно поместить это в Viewbox
, но поведение изменения размера этого, вероятно, не то, что вы хотите, так как оно масштабирует содержимое. Возможно, вы сможете найти способ сделать это полезным в вашем контексте.