LogicalTreeHelper Class


The .NET API Reference documentation has a new home. Visit the .NET API Browser on docs.microsoft.com to see the new experience.

Provides static helper methods for querying objects in the logical tree.

Namespace:   System.Windows
Assembly:  PresentationFramework (in PresentationFramework.dll)


public static class LogicalTreeHelper


Attempts to bring the requested UI element into view and raises the FrameworkElement.RequestBringIntoView event on the target in order to report the results.

System_CAPS_pubmethodSystem_CAPS_staticFindLogicalNode(DependencyObject, String)

Attempts to find and return an object that has the specified name. The search starts from the specified object and continues into subnodes of the logical tree.


Returns the collection of immediate child objects of the specified object, by processing the logical tree.


Returns the collection of immediate child objects of the specified FrameworkContentElement by processing the logical tree.


Returns the collection of immediate child objects of the specified FrameworkElement by processing the logical tree.


Returns the parent object of the specified object by processing the logical tree.

The LogicalTreeHelper class provides methods that you can use to return child collections of objects, or specific objects from within subnodes of the logical tree. However, most of the object tree operations that you typically perform are also exposed by similar methods or properties on FrameworkElement or FrameworkContentElement. For example, try the following:

  • Instead of calling the static GetChildren method, which returns an enumerator for the logical child objects, use the dedicated collection exposed in the content model for that object. Nearly all objects that support a content model expose some property that contains the collection of child objects, and provides collection interface support directly on that collection.

  • Instead of calling the static FindLogicalNode method to obtain a child object by specifying its name, call the FrameworkElement.FindName or FrameworkContentElement.FindName method on specific objects.

LogicalTreeHelper is most useful for analysis scenarios where you are traveling up or down the logical tree recursively through multiple levels, and want to use a consistent approach for examining the various parent or child objects. In this case, you might be accessing a mixture of content models, and using the more content-model specific APIs would be too complex.

.NET Framework
Available since 3.0

Any public static ( Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Return to top