c# - WPF 如何在代码中将网格行和列大小重置为 "*"

标签 c# wpf grid-layout

我有一个网格,在网格的行中包含多个控件。我设置了 RowDefinitions,以便网格中的每一行在 XAML 中的高度都为“*”,这样所有控件都具有相同的可用空间量。

我有一个配置屏幕,允许用户禁用/启用某些控件。如果某个控件被禁用,我将 Visibility 更改为 Collapsed 并将其在网格中的行高设置为零。这在应用程序启动时效果很好。

问题是,如果用户进入设置屏幕并在应用程序已经运行时重新启用控件(以前隐藏),我不确定如何将控件的网格列设置回正确的大小,并使其在新的(增加的)行数中重新分配所有可用高度。

有没有办法在 C# 代码中将所有高度设置回“*”,并让 WPF 进行重新分配?

如果没有,除了自己计算并手动设置行高或重新启动整个应用程序之外,还有其他想法吗?

最佳答案

您可以像这样设置星级值:

rowDef.Height = new GridLength(1, GridUnitType.Star);

另请参阅:http://msdn.microsoft.com/en-us/library/system.windows.gridunittype.aspx

关于c# - WPF 如何在代码中将网格行和列大小重置为 "*",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19732090/

相关文章:

c# - Linq to sql插入附加的实体对象

c# - 将 ResourceDictionary 添加到类库

c# - WPF 线程 C#

java - jButtons 未正确添加

css - 将列数用于响应式网格系统

css - 3 个流体 Div 宽度 2 个固定边距?

c# - XML 节点。 HasChild 将 InnerText 视为子节点

C# LINQ - 将行拆分为两行

c# - 在 react 性管道中管理状态

wpf - 在更新绑定(bind)源期间卡住 WPF 应用程序