我已经扩展了RowDefinition
asRowDefinitionExtended
和 In that,我什么时候可以得到LogicalChildren
属于 this的RowDefinition
。我的意思是我可以在哪个覆盖中获得LogicalChildren
?
public class RowDefinitionExtended : RowDefinition
{
protected override void OnInitialized(EventArgs e)
{
base.OnInitialized(e);
Loaded += OnRowDefinitionExtendedLoaded;
}
void OnRowDefinitionExtendedLoaded(object sender, RoutedEventArgs e)
{
var parent = GetUIParentCore() as Grid;
if (parent == null) return;
if (parent.Children.Cast<UIElement>().Where(c => Grid.GetRow(c) == parent.RowDefinitions.IndexOf(this)).All(ctrl => ctrl.Visibility != Visibility.Visible))
Height = new GridLength(0);
}
}
我的要求是,我需要检查它的所有内容LogicalChildren
并相应地Visibility
更改它Height
。
我怎么能这样做?任何想法?
更新:
代码已更新,在加载时我可以这样做并且效果很好。但我的问题是,加载后正在更改控件的可见性......那么在更改可见性时是否有任何通知?当布局更新时,我正在寻找一个事件......
我可以将它用于任何活动吗?