我有一个网格,其中包含网格行中的多个控件。我设置了 RowDefinitions,以便网格中的每一行在 XAML 中的高度为“*”,以便所有控件都有相同的可用空间。
我有一个配置屏幕,允许用户禁用/启用某些控件。如果控件被禁用,我将 Visibility 更改为 Collapsed 并将其在网格中的行高设置为零。这在应用程序启动时效果很好。
问题是,如果用户进入设置屏幕并在应用程序已经运行时重新启用控件(以前隐藏),我不确定如何将控件的网格列设置回正确的大小,并使它在新的(增加的)行数中重新分配所有可用高度。
有没有办法在 C# 代码中将所有高度设置回“*”,并让 WPF 进行重新分配?
如果没有,除了自己做数学并手动设置行高或重新启动整个应用程序之外,还有其他想法吗?