<DockPanel>
<TreeView DockPanel.Dock="Bottom" />
<DataGrid DockPanel.Dock="Bottom" Visibility="Collapsed"/>
</DockPanel>
基本上我希望第一个TreeView填充第二个DataGrid在他崩溃&#34;时占用的剩余空间。
如果我要将第一个TreeView设置为&#34; Collapsed&#34;,我希望第二个TreeView在设置为Visible时增加高度。
由于LastChildFill,这不起作用。但是,即使我将其设置为false,我也无法在折叠时使元素正确匹配。我不能在这里使用stackpanel,因为stackpanel完全忽略了控件中的自由空间,所以它永远不会填满我的窗口!
答案 0 :(得分:2)
我用过
<DockPanel>
<Grid>
<TreeView DockPanel.Dock="Bottom" />
<DataGrid DockPanel.Dock="Bottom" Visibility="Collapsed"/>
</Grid>
</DockPanel>
当我想要交换时,我切换DataGrid和TreeView的可见性。网格没有发生在我身上,因为我不认为Grid会采用窗口的形状。如果你在没有DockPanel的情况下独自完成这项任务,你将得到一个数据网格,它将在屏幕外显示无限远。但是DockPanel将“LastFillChild”应用于Grid,以及固有的子女。