WPF XMAL获取元素的父元素,子元素

/// 获得指定元素的父元素  
        ///   
        /// 指定页面元素  
        ///   
        ///   
        public T GetParentObject(DependencyObject obj) where T : FrameworkElement  
        {  
            DependencyObject parent = VisualTreeHelper.GetParent(obj);  
  
            while (parent != null)  
            {  
                if (parent is T)  
                {  
                    return (T)parent;  
                }  
  
                parent = VisualTreeHelper.GetParent(parent);  
            }  
  
            return null;  
        }  
  
        ///   
        /// 获得指定元素的所有子元素  
        ///   
        ///   
        ///   
        ///   
        public List GetChildObjects(DependencyObject obj) where T : FrameworkElement  
        {  
            DependencyObject child = null;  
            List childList = new List();  
  
            for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)  
            {  
                child = VisualTreeHelper.GetChild(obj, i);  
  
                if (child is T)  
                {  
                    childList.Add((T)child);  
                }  
                childList.AddRange(GetChildObjects(child));  
            }  
            return childList;  
        }  

  

 /// 查找子元素  
        ///   
        ///   
        ///   
        ///   
        ///   
        public T GetChildObject(DependencyObject obj, string name) where T : FrameworkElement  
        {  
            DependencyObject child = null;  
            T grandChild = null;  
  
  
            for (int i = 0; i <= VisualTreeHelper.GetChildrenCount(obj) - 1; i++)  
            {  
                child = VisualTreeHelper.GetChild(obj, i);  
  
  
                if (child is T && (((T)child).Name == name | string.IsNullOrEmpty(name)))  
                {  
                    return (T)child;  
                }  
                else  
                {  
                    grandChild = GetChildObject(child, name);  
                    if (grandChild != null)  
                        return grandChild;  
                }  
            }  
            return null;  
        }  

  转载自http://blog.csdn.net/duanzi_peng/article/details/17094639

转载于:https://www.cnblogs.com/lelehellow/p/6699424.html

你可能感兴趣的:(WPF XMAL获取元素的父元素,子元素)