c# - 隐藏 DockPanel 中的元素并调整大小

标签 c# wpf xaml visibility dockpanel

<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/

相关文章:

c# - 在更新面板中调用时,Javascript 确认框不显示

wpf - 在上下文菜单命令参数 mvvm 中获取行

c# - 在 WPF 中渲染 UIElement 期间等待屏幕

c# - 仅在 C# 中更改 Xamarin Forms 标签的颜色,无 XAML

c# - 获取 GridView 行

c# - 为什么异常消息为空

c# - 使用 C# 访问不同机器上的文件的正确方法

C# I命令语法

c# - 如何将 ControlTemplate 转换为 WPF 中的 XAML 字符串?

c# - WPF 绑定(bind)不能正确处理 int 类型的属性