Condividi tramite


VisualTreeHelper.GetChild(DependencyObject, Int32) Metodo

Definizione

Usando l'indice specificato, ottiene un oggetto figlio specifico dell'oggetto fornito esaminando l'albero visivo.

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

Parametri

reference
DependencyObject

Oggetto che contiene l'insieme figlio.

childIndex
Int32

int

Indice dell'oggetto figlio richiesto nell'insieme figlio di riferimento .

Restituisce

Oggetto figlio a cui fa riferimento childIndex.

Esempio

Ecco un esempio di funzione di utilità che può copiare un elenco di elementi figlio di un determinato tipo dall'interno di un albero visivo. Usa i metodi di attraversamento di base GetChildrenCount e GetChild. Usa la ricorsione in modo che gli elementi possano essere trovati indipendentemente dal livello di annidamento all'interno di contenitori intermedi. Usa anche un metodo di estensione IsSubclassOf da System.Reflection che estende il confronto dei tipi per considerare i sottotipi come corrispondenza per un 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);
    }
}

Si applica a