VisualTreeHelper.GetChild(DependencyObject, Int32) 方法

定义

使用提供的索引,通过检查可视树来获取所提供对象的特定子对象。

public:
 static DependencyObject ^ GetChild(DependencyObject ^ reference, int childIndex);
 static DependencyObject GetChild(DependencyObject const& reference, int const& childIndex);
public static DependencyObject GetChild(DependencyObject reference, int childIndex);
function getChild(reference, childIndex)
Public Shared Function GetChild (reference As DependencyObject, childIndex As Integer) As DependencyObject

参数

reference
DependencyObject

保存子集合的 对象。

childIndex
Int32

int

引用子集合中请求的子对象的索引。

返回

childIndex 引用的子对象。

示例

下面是一个实用工具函数示例,该函数可以从可视化树中复制特定类型的子元素的列表。 它使用基本遍历方法 GetChildrenCount 和 GetChild。 它使用递归,以便无论中间容器中的嵌套级别如何,都可以找到元素。 它还使用 System.Reflection 中的 IsSubclassOf 扩展方法,该方法扩展了类型比较,以将子类型视为 Type 的匹配

internal static void FindChildren<T>(List<T> results, DependencyObject startNode)
  where T : DependencyObject
{
    int count = VisualTreeHelper.GetChildrenCount(startNode);
    for (int i = 0; i < count; i++)
    {
        DependencyObject current = VisualTreeHelper.GetChild(startNode, i);
        if ((current.GetType()).Equals(typeof(T)) || (current.GetType().GetTypeInfo().IsSubclassOf(typeof(T))))
        {
            T asType = (T)current;
            results.Add(asType);
        }
        FindChildren<T>(results, current);
    }
}

适用于