首页 > Windows开发 > 详细

WPF常用代码:Visual Logical Tree

时间:2016-01-14 18:50:53      阅读:274      评论:0      收藏:0      [点我收藏+]
  1. 自定义路由事件
    // Register the routed event
    public static readonly RoutedEvent SelectedEvent = 
        EventManager.RegisterRoutedEvent( "Selected", RoutingStrategy.Bubble, 
        typeof(RoutedEventHandler), typeof(MyCustomControl));
     
    // .NET wrapper
    public event RoutedEventHandler Selected
    {
        add { AddHandler(SelectedEvent, value); } 
        remove { RemoveHandler(SelectedEvent, value); }
    }
    
    // Raise the routed event "selected"
    RaiseEvent(new RoutedEventArgs(MyCustomControl.SelectedEvent));
  2. 查找特定的Parent元素或Child元素
     // walk up the visual tree to find object of type T, starting from initial object
            public static T FindUpVisualTree<T>(DependencyObject initial) where T : DependencyObject
            {
                DependencyObject current = initial;
    
                while (current != null && current.GetType() != typeof(T))
                {
                    current = VisualTreeHelper.GetParent(current);
                }
                return current as T;
            }
    
            public static T FindDownVisualTree<T>(Visual parent) where T : Visual
            {
                T child = default(T);
                int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
                for (int i = 0; i < numVisuals; i++)
                {
                    Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
                    child = v as T;
                    if (child == null)
                    {
                        child = FindDownVisualTree<T>(v);
                    }
                    if (child != null)
                    {
                        break;
                    }
                }
                return child;
            }

WPF常用代码:Visual Logical Tree

原文:http://www.cnblogs.com/maigc249/p/5130893.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!