C# 如何使DockPanel中的项目展开以适应WPF中的所有可用空间?
我有一个C# 如何使DockPanel中的项目展开以适应WPF中的所有可用空间?,c#,wpf,xaml,stackpanel,dockpanel,C#,Wpf,Xaml,Stackpanel,Dockpanel,我有一个StackPanel包含一个StackPanel和一些其他项目。第一个堆叠面板具有垂直方向,内部面板具有水平方向。内部的一个有一个TreeView和一个ListView,我希望它们能够扩展并适应我通过窗口设置的窗口宽度,并允许用户进行更改。我还希望外部StackPanel与车窗高度相匹配。我该怎么做 编辑: 我已经转换为使用DockPanel,并且在每个元素中正确设置了DockPanel.Dock属性,并且在两个DockPanel中禁用了LastChildFill,布局仍然没有拉伸 守则
StackPanel
包含一个StackPanel
和一些其他项目。第一个堆叠面板
具有垂直方向,内部面板具有水平方向。内部的一个有一个TreeView
和一个ListView
,我希望它们能够扩展并适应我通过窗口设置的窗口宽度,并允许用户进行更改。我还希望外部StackPanel
与车窗高度相匹配。我该怎么做
编辑:
我已经转换为使用DockPanel
,并且在每个元素中正确设置了DockPanel.Dock
属性,并且在两个DockPanel中禁用了LastChildFill
,布局仍然没有拉伸
守则:
将宽度和高度属性设置为“自动”改用DockPanel。StackPanel明确地不关心可见空间,而DockPanel根据可用空间进行所有大小计算
更新:
此外,根据我的经验,将窗口主体放在视图中,并且仅将视图放在窗口中,可以获得更好的自动调整大小体验
出于某种原因,将所有的孩子直接放进窗口似乎不能很好地自动调整大小
更新2:
我将从要拉伸(填充)未使用空间的元素中删除显式DockPanel.Dock属性。这应该可以做到-我将其设置为TreeView和ListView共享主视图50/50;如果您不想这样,请将其设置为“自动”和“*”或其他。使用“LastChildFill”对您有利
为什么设置LastChildFill=“False”?默认值True将使ListView填满空间。