简单地说,我有一个 Grid,它有三个同样高的行和两个按钮。我想在第一行有第一个按钮,然后第二行是空的,最后是第三行中的第二个按钮。这样我就得到了相对大小的按钮之间的间距。我需要这个而不是硬编码绝对边距值。所以这里是 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 会破坏这里的东西?
- 我该如何解决这个问题?我需要灵活性,所以想象一下我可以有任意数量的按钮,这些按钮可以由网格中任意数量的空行/列分隔。