System.Windows.FrameworkElementExtensions.GetRootVisual C# (CSharp) Method

GetRootVisual() public static method

public static GetRootVisual ( this element ) : FrameworkElement
element this
return FrameworkElement
        public static FrameworkElement GetRootVisual(this FrameworkElement element)
        {
            FrameworkElement parent = null;
            while (element != null) {
                parent = element;
                if (parent is UserControl) {
                    // HACK: A UserControl parented to another UserControl has a non-null
                    //       parent; however we want to consider the UserControl as the
                    //       root visual for its contents...
                    break;
                }

                element = element.Parent as FrameworkElement;
            }

            return parent;
        }