wpf布局问题 b1 b2

wpf布局问题 b1 b2,wpf,layout,grid,stackpanel,Wpf,Layout,Grid,Stackpanel,如何使其看起来像这样: <Window ... > <StackPanel> <Button>b1</Button> <Button>b2</Button> </StackPanel> </Window> b1 b2 不使用网格,您可以尝试: <Window ...> <Grid> <Grid.

如何使其看起来像这样:

<Window ... >
    <StackPanel>
        <Button>b1</Button>
        <Button>b2</Button>
    </StackPanel>
</Window>

b1
b2
不使用网格,您可以尝试:

<Window ...>
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>

        <Button>b1</Button>
        <Button Grid.Row="1">b2</Button>
    </Grid>
</Window>

b1
b2

不像完整的
网格那样灵活,但使用起来更简单…

简短回答:你不能

详细回答:编写自定义面板并覆盖ArrangeOverride和MeasureOverride以模拟网格行为


StackPanel将其每个子元素排列为使用最小高度(如果方向=水平,则为最小宽度)。StackPanel不提供改变此行为的属性。另一方面,除非另有说明,否则网格将在每个子级(或者更确切地说是行/列)上均匀划分所有可用空间。

堆栈面板的行为不像网格,因为它不是网格。这意味着它是一个堆栈面板。如果它的作用像一个网格,那么它就是一个网格。有点像按钮和文本框的行为不同,鸟儿不会在我的草坪下挖地道。你是什么意思让它看起来像这样?用什么方法?我的意思是让stackpanel占据整个窗口,就像网格一样。真不敢相信我错过了。
<Window ... >
    <UniformGrid Rows="2" Columns="1">
        <Button>b1</Button>
        <Button>b2</Button>
    </UniformGrid>
</Window>