Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles / desktop / WPF

Walk up the Visual Tree

5.00/5 (2 votes)
26 Nov 2010CPOL 1  
Introduction The following snippet provides a generic method to walk up the visual tree of Silverlight in order to find an element of a given type. It will return the first found item of said type, or null if the search ends at the visual tree root without any results.  Code // walk up the...

Introduction


The following snippet provides a generic method to walk up the visual tree of Silverlight in order to find an element of a given type. It will return the first found item of said type, or null if the search ends at the visual tree root without any results.  


Code


C#
// walk up the visual tree to find object of type T, starting from initial object
public static T FindUpVisualTree<T>(DependencyObject initial) where T : DependencyObject
{
    DependencyObject current = initial;
 
    while (current != null && current.GetType() != typeof(T))
    {
         current = VisualTreeHelper.GetParent(current);
    }
    return current as T;   
}

Usage 


Find the first Grid containing the Button (x:Name="button01"), regardless if the Button is located directly in a Grid or nested within some other containers.   



C#
Grid gridContainingButton = FindUpVisualTree<Grid>(button01);

References  


Understanding the Visual
Tree and Logical Tree in WPF
by Josh Smith

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)