WPF-wpf的可视化树操作

sing System;
using  System.Windows;
using  System.Windows.Controls;
using  System.Windows.Data;
using  System.Windows.Documents;
using  System.Windows.Media;
using  System.Windows.Shapes;
using  System.Windows.Controls.Primitives;
using  System.Collections.ObjectModel;
using  System.Collections.Generic;

namespace  MyLib.Extensions {
    
///   <summary>
    
///  Description of WpfExt.
    
///   </summary>
     public   static   class  WpfExt    {
        
public   static  List < childItem >  FindVisualChildren < childItem > ( this  DependencyObject obj)
            
where  childItem : DependencyObject {

            List
< childItem >  children  =   new  List < childItem > ();

            
for  ( int  i  =   0 ; i  <  VisualTreeHelper.GetChildrenCount(obj); i ++ ) {
                DependencyObject child 
=  VisualTreeHelper.GetChild(obj, i);
                
if  (child  !=   null   &&  child  is  childItem) {
                    children.Add(child 
as  childItem);
                } 
else  {
                    childItem childOfChild 
=  FindVisualChild < childItem > (child);
                    
if  (childOfChild  !=   null ) {
                        children.Add(childOfChild 
as  childItem);
                    }
                }
            }

            
return  children;
        }

        
public   static  childItem FindVisualChild < childItem > ( this  DependencyObject obj)
            
where  childItem : DependencyObject {
            
for  ( int  i  =   0 ; i  <  VisualTreeHelper.GetChildrenCount(obj); i ++ ) {
                DependencyObject child 
=  VisualTreeHelper.GetChild(obj, i);
                
if  (child  !=   null   &&  child  is  childItem)
                    
return  (childItem)child;
                
else  {
                    childItem childOfChild 
=  FindVisualChild < childItem > (child);
                    
if  (childOfChild  !=   null )
                        
return  childOfChild;
                }
            }
            
return   null ;
        }

    }
}

转载于:https://www.cnblogs.com/xmlspy/archive/2008/10/20/1314754.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值