Проще говоря, у меня есть одна сетка с тремя одинаково высокими рядами и двумя кнопками. Я хочу иметь первую кнопку в первой строке, затем вторую строку пустую и, наконец, вторую кнопку в третьей строке. Таким образом, я получаю расстояние между кнопками относительного размера. Мне нужно это, а не жесткое кодирование абсолютных значений поля. Итак, вот XAML для этого:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button Grid.Row="0">Button 1</Button>
<Button Grid.Row="2">Button 2</Button>
</Grid>
Работает отлично! Теперь мне нужна дополнительная функция, чтобы все масштабировалось, поэтому я поместил ее в Viewbox:
<Viewbox>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
<RowDefinition Height="*" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button Grid.Row="0">Button 1</Button>
<Button Grid.Row="2">Button 2</Button>
</Grid>
</Viewbox>
И вдруг макет нарушается. Я получаю масштабирование, предоставляемое Viewbox, но у меня нет пустого пространства между кнопками. Итак два вопроса:
- Почему Viewbox здесь что-то ломает?
- Как я могу обойти это? Мне нужна гибкость, поэтому представьте, что у меня может быть произвольное количество кнопок, которые могут быть разделены произвольным количеством пустых строк/столбцов в сетке.