代码之家  ›  专栏  ›  技术社区  ›  Alan Mendelevich

如何在WPF中获得顶层对象(窗口或页面)[[副本]

  •  29
  • Alan Mendelevich  · 技术社区  · 17 年前

    还有别的办法吗?

    4 回复  |  直到 17 年前
        1
  •  79
  •   Kirk Woll    10 年前

    这对我很有用:

    Window parentWindow = Window.GetWindow(this);
    
        2
  •  30
  •   Community Mohan Dere    12 年前
    var parent = VisualTreeHelper.GetParent(this);
    while (!(parent is Page))
    {
        parent = VisualTreeHelper.GetParent(parent);
    }
    (parent as Page).DoStuff();
    
        3
  •  7
  •   Thomas Levesque    17 年前

    可以使用VisualTreeHelper类检索顶级控件:

    DependencyObject GetTopLevelControl(DependencyObject control)
    {
        DependencyObject tmp = control;
        DependencyObject parent = null;
        while((tmp = VisualTreeHelper.GetParent(tmp)) != null)
        {
            parent = tmp;
        }
        return parent;
    }
    
        4
  •  0
  •   user1497142    14 年前

    我认为最好的办法是

    var obj = VisualTreeHelper.GetParent((DependencyObject)Content);