WPF:当其子项改变其大小时通知visualParent

时间:2010-03-16 16:08:07

标签: wpf

我有FrameworkElement,例如Grid,它有子节点(Cells,在另一个控件中实现)。当主窗口改变大小时,我首先在Grid中处理sizeChanged,然后在其中一些子句中处理。如何通知所有孩子sizeChanged事件已完成处理?当然,我可以在儿童尺寸改变其他事件改变并增加一些反击,但由于某些原因,这不是最好的决定。

有人可以推荐一些东西吗?谢谢!

1 个答案:

答案 0 :(得分:0)

我认为您正在寻找UIElement.LayoutUpdated Event。每当布局更新时都会触发,这很多,所以我建议在容器SizeChanged事件的处理程序中订阅它,并在LayoutUpdated处理程序中取消订阅。

示例:

    private void Window_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        // Size change started.
        LayoutUpdated += Window_LayoutUpdated;
    }

    private void Window_LayoutUpdated(object sender, EventArgs e)
    {
        // Size change completed.
        LayoutUpdated -= Window_LayoutUpdated;
    }