VisualTreeHelper.GetChild(DependencyObject, Int32) Methode

Definition

Ruft mithilfe des bereitgestellten Indexes ein bestimmtes untergeordnetes Objekt des bereitgestellten Objekts ab, indem die visuelle Struktur untersucht wird.

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

Parameter

reference
DependencyObject

Das Objekt, das die untergeordnete Auflistung enthält.

childIndex
Int32

int

Der Index des angeforderten untergeordneten Objekts in der untergeordneten Verweisauflistung .

Gibt zurück

Das untergeordnete Objekt, auf das von childIndex verwiesen wird.

Beispiele

Hier sehen Sie ein Beispiel für eine Hilfsprogrammfunktion, die eine Liste mit untergeordneten Elementen eines bestimmten Typs aus einer visuellen Struktur kopieren kann. Es verwendet die grundlegenden Traversalmethoden GetChildrenCount und GetChild. Es verwendet Rekursion, damit Elemente unabhängig von der Ebene der Schachtelung in Zwischencontainern gefunden werden können. Außerdem wird eine IsSubclassOf-Erweiterungsmethode von System.Reflection verwendet, die den Typvergleich erweitert, um Untertypen als Übereinstimmung für einen Typ zu betrachten.

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

Gilt für: