WPF - 折叠网格单元

Posted

技术标签:

【中文标题】WPF - 折叠网格单元【英文标题】:WPF - collapsing grid cells 【发布时间】:2011-06-09 14:40:25 【问题描述】:

我在屏幕上的按钮布局方面遇到了一些问题。根据特定标准,有许多按钮的可见性设置为折叠。

无论如何,按钮位于堆栈面板中,内容决定了按钮的宽度。因为它们应该共享相同的大小,所以我将它们放在一个网格中,其中列使用 SharedSizeGroup。

完成此操作后,按钮现在都共享相同的宽度,即显示具有最大内容的按钮所需的最小宽度。它的意思是按钮没有显示在所需的位置。

也就是说 - 假设 0-4 列中有五个按钮,其中第一个按钮是折叠的,理想情况下,按钮应该全部向左移动,以便它们始终占据从左到右的空间。有什么办法可以做到这一点,或者,如果没有,我怎样才能让堆栈面板中的按钮共享相同的宽度?

非常感谢任何帮助。

【问题讨论】:

【参考方案1】:

您可以用单独的网格包裹按钮并使用它来设置共享大小,范围应该是堆栈面板。然后控制单个网格而不是按钮的可见性,虽然这有点混乱。

编辑:这可能是你需要的:

    <UniformGrid Rows="1" HorizontalAlignment="Left">
            ...

【讨论】:

尝试了其中包含单个网格的一个网格 - 单个网格的可见性根据用于放置在按钮上的标准而崩溃。这不起作用,因为它们共享相同的大小,因此如果任何按钮可见,所有其他单元格仍将占用相同的空间... 你不应该在单个网格周围创建一个网格,这违背了目的,你需要将单个网格放在一个堆栈面板中。

以上是关于WPF - 折叠网格单元的主要内容,如果未能解决你的问题,请参考以下文章

在 WPF 中折叠网格

wpf - 当其他列的内容折叠时,网格列不填充剩余空间

WPF XAML 网格可见性触发器

网格和stackpanel之间的WPF组合

WPF网格中重叠的按钮单元格

WPF:当第二列内容折叠时,DataGrid 不会扩展以占据 Grid 的两列