如何使DockPanel中的项目扩展以适应WPF中的所有可用空间?

我有一个StackPanel包含StackPanel和其他一些项目。 第一个StackPanel具有垂直方向,内部方向具有水平方向。 内部有一个TreeView和一个ListView ,我希望它们扩展并适合窗口的宽度,我在窗口设置并允许用户更改。 我还希望外部StackPanel适合窗口的高度。 我该怎么做呢?

编辑:我已经转换为使用DockPanel ,并且我已经在每个元素中正确设置了DockPanel.Dock属性,并且在两个LastChildFill中都禁用了LastChildFill,布局仍然没有拉伸。

代码:

            

这应该这样做 – 我设置它,以便TreeView和ListView共享主视图50/50; 如果您不想这样,请将其设置为“自动”和“*”等。 使用“LastChildFill”对您有利!

                

请改用DockPanel。 StackPanel显然不关心可见空间,而DockPanel根据可用空间完成所有大小计算。

更新:

另外,根据我的经验,将窗体放入视图中,只有窗口中的视图才能获得更好的自动调整体验。

出于某种原因,将所有孩子直接放入窗口似乎不能很好地自动resize。

更新2:

我将从您要拉伸(填充)未使用空间的元素中删除显式DockPanel.Dock属性。

将width和height属性设置为“auto”