如何搜索父母?

时间:2010-10-05 19:44:41

标签: wpf parent

我有建设:

Grid a = ((((usercontrol.Parent as DockPanel).Parent as ScrollViewer).Parent as Grid)

是否可以找到树或父元素?

示例:网格a = GetFirstParent(usercontrol,“网格”)网格 - 是类型元素

2 个答案:

答案 0 :(得分:1)

    Grid a = userControl.FindParent<Grid>();

    public static T FindParent<T>(this DependencyObject startElement)
        where T : DependencyObject
    {
        DependencyObject parent = GetParentObject(startElement);
        if (parent == null)
            return null;

        T typedParent = parent as T;
        if (typedParent != null)
        {
            return typedParent;
        }

        return FindParent<T>(parent);
    }

答案 1 :(得分:0)

使用VisualTreeHelper类。

它有一个方法GetParent,它返回一个控件的父级(实际上是一个DependencyObject)。