您的位置:首页 > 其它

关于WPF逻辑树深入探讨

2017-01-13 22:52 387 查看
WPF中的逻辑树通过VisualTreeHelp 帮助类我们可以遍历出一个逻辑树下面的所有元数

   public void GetChild(DependencyObject dp, VisualTreeSchema vt)

        {

            int count = VisualTreeHelper.GetChildrenCount(dp);

            for (int i = 0; i < count; i++)

            {

                FrameworkElement element = (FrameworkElement)VisualTreeHelper.GetChild(dp, i);

                VisualTreeSchema node = new VisualTreeSchema() { Name = element.GetType().Name, frame = element };

                vt.Nodes.Add(node);

                GetChild(element, node);

            }

        }

  public class VisualTreeSchema : INotifyPropertyChanged

    {

        public FrameworkElement frame { get; set; }

        public VisualTreeSchema()

        {

            Nodes = new List<VisualTreeSchema>();

        }

        public List<VisualTreeSchema> Nodes { get; set; }

        public string Name { get; set; }

        public event PropertyChangedEventHandler PropertyChanged;

        public void OnPropertyChanged(string propertyName)

        {

            if (PropertyChanged != null)

            {

                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));

            }

        }

    }
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  wpf