3

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

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

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

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

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

4

1 回答 1

2

您可以像这样设置星值

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

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

于 2013-11-01T17:43:34.610 回答