Поделиться через


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. Он использует рекурсию, чтобы элементы можно было найти независимо от того, какой уровень вложенности в промежуточные контейнеры существует. Он также использует метод расширения IsSubclassOf из System.Reflection , который расширяет сравнение типов, чтобы рассматривать подтипы как совпадение для типа.

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);
    }
}

Применяется к