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
Исходный визуальный элемент.
Возвращаемое значение
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);
}
}