我有一个网格,在网格的行中包含多个控件。我设置了 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/