Share via


VisualTreeHelper.GetChildrenCount(DependencyObject) 方法

定义

返回可视化树中对象的子集合中存在的子级数。

public:
 static int GetChildrenCount(DependencyObject ^ reference);
 static int GetChildrenCount(DependencyObject const& reference);
public static int GetChildrenCount(DependencyObject reference);
function getChildrenCount(reference)
Public Shared Function GetChildrenCount (reference As DependencyObject) As Integer

参数

reference
DependencyObject

源视觉对象。

返回

Int32

int

提供的源视觉对象的视觉子级数。

示例

下面是一个实用工具函数的示例,该函数可以从可视化树中复制特定类型的子元素的列表。 它使用基本遍历方法 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);
    }
}

适用于