Compartilhar via


VisualTreeHelper.GetChild(DependencyObject, Int32) Método

Definição

Usando o índice fornecido, obtém um objeto filho específico do objeto fornecido examinando a árvore visual.

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

Parâmetros

reference
DependencyObject

O objeto que contém a coleção filho.

childIndex
Int32

int

O índice do objeto filho solicitado na coleção filho de referência .

Retornos

O objeto filho, conforme referenciado por childIndex.

Exemplos

Aqui está um exemplo de uma função de utilitário que pode copiar uma lista de elementos filho de um tipo específico de dentro de uma árvore visual. Ele usa os métodos básicos de passagem GetChildrenCount e GetChild. Ele usa recursão para que os elementos possam ser encontrados independentemente do nível de aninhamento dentro de contêineres intermediários. Ele também usa um método de extensão IsSubclassOf de System.Reflection que estende a comparação de tipos para considerar subtipos como uma correspondência para um Tipo.

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

Aplica-se a