zoukankan      html  css  js  c++  java
  • Visual Tree

    1.GetVisualParent

    public static T GetVisualParent<T>(DependencyObject obj) where T : DependencyObject
    {
    DependencyObject parent = obj;
    while (true)
    {
    if (parent == null) return null;
    T t = parent as T;
    if (t != null) return t;
    parent = VisualTreeHelper.GetParent(parent);
    }
    }

    使用示例代码:

    Button btn = sender as Button;
    ListViewItem item = Utilities.GetVisualParent<ListViewItem>(btn);

    2.GetVisualChildren
    1)方法:

    public static ReadOnlyCollection<T> GetVisualChildren<T>(DependencyObject obj) where T : DependencyObject
    {
    List<T> list = new List<T>();
    int count = VisualTreeHelper.GetChildrenCount(obj);
    for (int i = 0; i < count; i++)
    {
    DependencyObject child = VisualTreeHelper.GetChild(obj, i);
    if (child is T) list.Add((T)child);
    list.AddRange(GetVisualChildren<T>(child));
    }
    return new ReadOnlyCollection<T>(list);
    }

    2)示例代码 Button btn = sender as Button;

    ListViewItem item = Utilities.GetVisualParent<ListViewItem>(btn);
    if (item == null) return;
    ReadOnlyCollection<ComboBoxEdit> cbxCollection= Haitai.Common.Utilities.GetVisualChildren<ComboBoxEdit>(item);
  • 相关阅读:
    关于Java的i++和++i的区别
    Java基础(八 前面补充)
    Java基础(七)
    Java基础(六)
    Java基础(五)
    Java基础(四)
    Java基础(三)
    Java基础(二)
    Java基础
    阿里技术专员《并发编程技术分享》
  • 原文地址:https://www.cnblogs.com/quietwalk/p/3531608.html
Copyright © 2011-2022 走看看