让我的第二个水平网格分隔器正常工作

4

我对GridSplitter对象感到困惑:

Vertical Splitter

上述内容具有垂直拆分器:
<GridSplitter
    Width="5" 
    Background="LightGray"
    Grid.Row="1"
    Grid.RowSpan="4"
    Grid.Column="0" />

它表现正确,可以调整列大小。
但是我想添加一个水平网格拆分器:
<GridSplitter
    Width="5" 
    Background="Black"
    VerticalAlignment="Stretch"
    ResizeDirection="Rows"
    Grid.Row="2"
    Grid.Column="0" />

但是看到黑色线了吗?它在错误的位置。它应该是水平的,位于两个GroupBox项目之间:

How it should be

我的标记逻辑有什么问题?有趣的是,如果我将VerticalAlignment设置为TopCenter,那么分隔符甚至不会显示,更别提工作了。

谢谢。

更新:

Resized

上面是调整大小的控件(感谢您的回答)。但在这种情况下,只有groupbox应该调整大小。 groupbox的内容可以保持在顶部。
更新:通过将RowDefinition高度值从1 *更改为auto来修复控件的调整大小。

如果GroupBox上存在属性VerticalContentAlignment="Top",请尝试设置它;或者将GroupBox的根子元素的VerticalAlignment设置为Top - Nkosi
我现在会暂时不处理这个。另外一天可以提出新的问题。谢谢。 - Andrew Truckle
@Nkosi,我解决了那个问题。我的RowDefinition高度全部设置为1*,我将它们改为auto - Andrew Truckle
很高兴你解决了它。酷! - Nkosi
1个回答

2

对于水平的网格分隔符,您应该设置高度和水平对齐。

<GridSplitter
    Height="5" 
    Background="Black"
    VerticalAlignment="Center"
    HorizontalAlignment="Stretch"
    ResizeDirection="Rows"
    Grid.Row="2"
    Grid.Column="0" />

1
这里有一个你可以查看的例子。https://msdn.microsoft.com/zh-cn/library/system.windows.controls.gridsplitter(v=vs.110).aspx#Anchor_8 - Nkosi
谢谢!顺便提一下,我发现 GroupBox内容会被拉伸。在这种情况下,我希望 GroupBox 能够自适应大小,但是 GroupBox 的内容仍然保持在顶部对齐。 - Andrew Truckle
我很难想象你的意思,请发张图片。这很可能是一个对齐问题,可能是组框本身或其子元素的问题。 - Nkosi
发布另一个问题,包括图片和 XAML 代码片段。我会尽力帮助您解决。 - Nkosi
我更新了这个问题。但我必须推迟一个新问题。它说我不能在30天内提出超过50个问题。所以我不知道下一次什么时候可以提问!真烦人。 - Andrew Truckle

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接