VisualTreeHelper.GetChild(DependencyObject, Int32) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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);
}
}