Click here to Skip to main content
15,885,278 members
Articles / Desktop Programming / WPF
Tip/Trick

Walk up the Visual Tree

Rate me:
Please Sign up or sign in to vote.
5.00/5 (2 votes)
26 Nov 2010CPOL 21.7K   3  
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)


Written By
Software Developer Glaux Soft AG, Bern
Switzerland Switzerland
MS in Physics
Secondary School Teacher
Software Developer / Project Manager

Comments and Discussions

 
-- There are no messages in this forum --