<DockPanel>
<TreeView DockPanel.Dock="Bottom" />
<DataGrid DockPanel.Dock="Bottom" Visibility="Collapsed"/>
</DockPanel>
基本上,我希望第一个 TreeView 填充第二个 DataGrid 在“折叠”时占用的剩余空间。
如果我将第一个 TreeView 设置为“折叠”,我希望第二个 TreeView 在设置为“可见”时高度增加。
由于 LastChildFill,这不起作用。但即使我将其设置为 false,当元素折叠时,我也无法使元素正确适合。我不能在这里使用堆栈面板,因为堆栈面板完全忽略控件内的可用空间,因此它永远不会填满我的窗口!
最佳答案
我用过
<DockPanel>
<Grid>
<TreeView DockPanel.Dock="Bottom" />
<DataGrid DockPanel.Dock="Bottom" Visibility="Collapsed"/>
</Grid>
</DockPanel>
当我想要交换时,我会切换 DataGrid 和 TreeView 的可见性。我没有想到网格,因为我不认为网格会采用 window 的形状。如果您在没有 DockPanel 的情况下单独完成此操作,您将获得一个数据网格,该数据网格将在屏幕外无限延伸。但 DockPanel 将“LastFillChild”应用于 Grid,并且本质上应用于子项。
关于c# - 隐藏 DockPanel 中的元素并调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24944801/