放置具有不同高度的块,例如具有特定顺序的块 - WPF,XAML

时间:2017-01-04 12:49:49

标签: wpf xaml

我刚开始使用WPF。由于某些原因,我无法在谷歌上找到我的问题的答案...
我想放置具有不同高度的块来实现级联布局。我看到了这个答案How to appose WrapPanel items of different heights (vertically)?,但它使用了第3部分的实现 我的代码:

    <WrapPanel>
        <StackPanel>
            <WrapPanel>
                <GroupBox Header="Block1" VerticalAlignment="Top">
                    <StackPanel Width="200" Height="50" Background="Gray"/>
                </GroupBox>
                <GroupBox Header="Block2">
                    <StackPanel Width="200" Height="150" Background="LightBlue"/>
                </GroupBox>
                <GroupBox Header="Block3">
                    <StackPanel Width="200" Height="25" Background="LightCoral"/>
                </GroupBox>
            </WrapPanel>
        </StackPanel>
    </WrapPanel>

当窗口处于正常状态时,它看起来没问题:

Window, normal state

但是当窗口最大化时,它看起来如此:

Window, maximized state, wrong look

看起来应该是这样的:

Window, maximized state, right look

在哪里搜索?搜索什么?我该怎么做才能实现这种行为?

非常感谢!

1 个答案:

答案 0 :(得分:2)

不确定这是否是您想要的,但如果它们的宽度相同(只是高度不同),只需将WrapPanel垂直放置即可。至少它会摆脱水平差距:

<WrapPanel Orientation="Vertical">
    <GroupBox Header="Block1">
        <StackPanel Width="200" Height="50" Background="Gray"/>
    </GroupBox>
    <GroupBox Header="Block2">
        <StackPanel Width="200" Height="150" Background="LightBlue"/>
    </GroupBox>
    <GroupBox Header="Block3">
        <StackPanel Width="200" Height="25" Background="LightCoral"/>
    </GroupBox>
</WrapPanel>