<Window ... >
<StackPanel>
<Button>b1</Button>
<Button>b2</Button>
</StackPanel>
</Window>
如何使其看起来像这样:
<Window ...>
<Grid>
<Grid.RowDefinitions>
<RowDefinition></RowDefinition>
<RowDefinition></RowDefinition>
</Grid.RowDefinitions>
<Button>b1</Button>
<Button Grid.Row="1">b2</Button>
</Grid>
</Window>
不使用网格
答案 0 :(得分:5)
你可以尝试:
<Window ... >
<UniformGrid Rows="2" Columns="1">
<Button>b1</Button>
<Button>b2</Button>
</UniformGrid>
</Window>
不像完整的Grid
那样灵活,但更易于使用......
答案 1 :(得分:2)
简短的回答:你不能。
答案很长:编写自定义面板并覆盖ArrangeOverride和MeasureOverride以模拟网格行为。
StackPanel将其每个子元素排列为使用最小高度(如果Orientation == Horizontal,则为最小宽度)。 StackPanel没有提供改变此行为的属性。另一方面,网格除非另有说明,否则将在每个子节点(或更确切地说是行/列)上均匀划分所有可用空间。