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


    /// 获得指定元素的父元素  
            /// </summary>  
            /// <typeparam name="T">指定页面元素</typeparam>  
            /// <param name="obj"></param>  
            /// <returns></returns>  
            public T GetParentObject<T>(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;  
            }  
      
            /// <summary>  
            /// 获得指定元素的所有子元素  
            /// </summary>  
            /// <typeparam name="T"></typeparam>  
            /// <param name="obj"></param>  
            /// <returns></returns>  
            public List<T> GetChildObjects<T>(DependencyObject obj) where T : FrameworkElement  
            {  
                DependencyObject child = null;  
                List<T> childList = new List<T>();  
      
                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<T>(child));  
                }  
                return childList;  
            }  
    

      

     /// 查找子元素  
            /// </summary>  
            /// <typeparam name="T"></typeparam>  
            /// <param name="obj"></param>  
            /// <param name="name"></param>  
            /// <returns></returns>  
            public T GetChildObject<T>(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<T>(child, name);  
                        if (grandChild != null)  
                            return grandChild;  
                    }  
                }  
                return null;  
            }  
    

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

  • 相关阅读:
    动态ip发布web+绑定域名
    JQuery选择器大全
    mysql触发器
    jquery选择器
    PHP5新语法学习
    Jquery中$.ajax()方法参数详解(转)
    svn笔记
    lsof命令
    新环境常用工具
    不会转载
  • 原文地址:https://www.cnblogs.com/lelehellow/p/6699424.html
Copyright © 2020-2023  润新知