隐藏DockPanel中的元素&调整

时间:2014-07-24 22:03:48

标签: c# wpf xaml visibility dockpanel

<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完全忽略了控件中的自由空间,所以它永远不会填满我的窗口!

1 个答案:

答案 0 :(得分:2)

我用过

<DockPanel>
      <Grid>
          <TreeView DockPanel.Dock="Bottom" />
          <DataGrid DockPanel.Dock="Bottom" Visibility="Collapsed"/>
      </Grid>
</DockPanel>

当我想要交换时,我切换DataGrid和TreeView的可见性。网格没有发生在我身上,因为我不认为Grid会采用窗口的形状。如果你在没有DockPanel的情况下独自完成这项任务,你将得到一个数据网格,它将在屏幕外显示无限远。但是DockPanel将“LastFillChild”应用于Grid,以及固有的子女。