WPF如何在代码中将网格行和列大小重置为“*”

时间:2013-11-01 17:33:52

标签: c# wpf grid-layout

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

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

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

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

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

1 个答案:

答案 0 :(得分:2)

您可以像这样设置星级值

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

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