VisualTreeHelper.GetChild method

Applies to Windows and Windows Phone

Using the provided index, obtains a specific child object of the provided object by examining the visual tree.

Syntax


Public Shared Function GetChild(
  reference As DependencyObject,  
  childIndex As Integer 
) As DependencyObject

Parameters

reference

Type: DependencyObject

The object that holds the child collection.

childIndex

Type: System.Int32 [.NET] | int32 [C++]

The index of the requested child object in the reference child collection.

Return value

Type: DependencyObject

The child object as referenced by childIndex.

Examples

Here's an example of a utility function that can copy a list of child elements of a particular type from within a visual tree. It uses the basic traversal methods GetChildrenCount and GetChild. It uses recursion so that elements can be found no matter what level of nesting within intermediate containers exists. It also uses an IsSubclassOf extension method from System.Reflection that extends the type comparison to consider subtypes as a match for a Type.


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

Requirements

Minimum supported client

Windows 8

Minimum supported server

Windows Server 2012

Minimum supported phone

Windows Phone 8.1 [Windows Runtime apps only]

Namespace

Windows.UI.Xaml.Media
Windows::UI::Xaml::Media [C++]

Metadata

Windows.winmd

See also

VisualTreeHelper

 

 

Show:
© 2014 Microsoft