Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使DockPanel中的项目展开以适应WPF中的所有可用空间?_C#_Wpf_Xaml_Stackpanel_Dockpanel - Fatal编程技术网

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填满空间。