In This Article

VisualTreeHelperExtended Class

Contains static methods that are useful for performing common tasks with nodes in a visual tree.

public static class VisualTreeHelperExtended
Inheritance:
object object

Methods

GetAllDescendants(DependencyObject, Type)

Returns a list of System.Windows.DependencyObject values that includes all the descendant visual objects that are of the specified Type.

public static IList<DependencyObject> GetAllDescendants(DependencyObject source, Type desiredType)
Parameter Type Description
source DependencyObject

The visual whose descendants are returned.

desiredType Type

The desired descendants Type.

Returns

IList<DependencyObject>:

A list of System.Windows.DependencyObject values that includes all the descendant visual objects that are of the specified Type.

GetAllDescendants<T>(DependencyObject)

Returns a list of System.Windows.DependencyObject values that includes all the descendant visual objects that are of the specified Type.

public static IList<T> GetAllDescendants<T>(DependencyObject source) where T : DependencyObject
Type Parameters:
T -

The desired descendant Type.

Parameter Type Description
source DependencyObject

The visual whose descendants are returned.

Returns

IList<T>:

A list of System.Windows.DependencyObject values that includes all the descendant visual objects that are of the specified Type.

GetAncestor(DependencyObject, Type)

Returns a System.Windows.DependencyObject value that represents an ancestor of the visual object that is of the specified Type.

public static DependencyObject GetAncestor(DependencyObject source, Type desiredType)
Parameter Type Description
source DependencyObject

The visual whose ancestor is returned.

desiredType Type

The desired ancestor Type.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents an ancestor of the visual object that is of the specified Type.

GetAncestor(DependencyObject, params Type[])

Returns a System.Windows.DependencyObject value that represents an ancestor of the visual object that is one of the specified Types.

public static DependencyObject GetAncestor(DependencyObject source, params Type[] desiredTypes)
Parameter Type Description
source DependencyObject

The visual whose ancestor is returned.

desiredTypes Type[]

The desired ancestor Types.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents an ancestor of the visual object that is one of the specified Types.

GetAncestorCount(DependencyObject, Type)

Returns the number of ancestors of the visual object that is of the specified Type.

public static int GetAncestorCount(DependencyObject source, Type desiredType)
Parameter Type Description
source DependencyObject

The visual whose ancestor count is returned.

desiredType Type

The desired ancestor Type.

Returns

int:

The number of ancestors of the visual object that is of the specified Type.

GetAncestorPopup(DependencyObject)

Returns a Popup value that represents an ancestor of the visual object.

public static Popup GetAncestorPopup(DependencyObject source)
Parameter Type Description
source DependencyObject

The visual whose ancestor is returned.

Returns

Popup:

A Popup value that represents an ancestor of the visual object.

GetAncestor<T>(DependencyObject)

Returns a System.Windows.DependencyObject value that represents an ancestor of the visual object that is of the specified Type.

public static T GetAncestor<T>(DependencyObject source) where T : DependencyObject
Type Parameters:
T -

The desired ancestor Type.

Parameter Type Description
source DependencyObject

The visual whose ancestor is returned.

Returns

T:

A System.Windows.DependencyObject value that represents an ancestor of the visual object that is of the specified Type.

GetAncestor<T>(DependencyObject, Predicate<T>)

Returns a System.Windows.DependencyObject value that represents an ancestor of the visual object that is of the specified Type.

public static T GetAncestor<T>(DependencyObject source, Predicate<T> condition) where T : DependencyObject
Type Parameters:
T -

The desired ancestor Type.

Parameter Type Description
source DependencyObject

The visual whose ancestor is returned.

condition Predicate<T>

The optional condition predicate to use for matching objects. Any object is matched if this is not passed.

Returns

T:

A System.Windows.DependencyObject value that represents an ancestor of the visual object that is of the specified Type.

GetChild(DependencyObject, Type)

Returns a System.Windows.DependencyObject value that represents the first child visual object that is of the specified Type.

public static DependencyObject GetChild(DependencyObject source, Type desiredType)
Parameter Type Description
source DependencyObject

The visual whose child is returned.

desiredType Type

The desired child Type.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents the first child visual object that is of the specified Type.

GetChild<T>(DependencyObject)

Returns a System.Windows.DependencyObject value that represents the first child visual object that is of the specified Type.

public static T GetChild<T>(DependencyObject source) where T : DependencyObject
Type Parameters:
T -

The desired child Type.

Parameter Type Description
source DependencyObject

The visual whose child is returned.

Returns

T:

A System.Windows.DependencyObject value that represents the first child visual object that is of the specified Type.

GetCurrentOrAncestor(DependencyObject, Type)

Returns a System.Windows.DependencyObject value that represents the visual object, or an ancestor of the visual object, that is of the specified Type.

public static DependencyObject GetCurrentOrAncestor(DependencyObject source, Type desiredType)
Parameter Type Description
source DependencyObject

The visual whose ancestor is returned.

desiredType Type

The desired ancestor Type.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents the visual object, or an ancestor of the visual object, that is of the specified Type.

GetDescendant(DependencyObject, VisualResultCallback)

Returns a System.Windows.DependencyObject which is a descendant of the specified object, using caller-defined VisualTreeHelperExtended.VisualResultCallback method.

public static DependencyObject GetDescendant(DependencyObject source, VisualTreeHelperExtended.VisualResultCallback resultCallback)
Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

resultCallback VisualTreeHelperExtended.VisualResultCallback

The result callback.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents the descendant of the specified object that matches the user-defined criteria.

GetDescendant(DependencyObject, VisualResultCallback, VisualDescendantFilterCallback)

Returns a System.Windows.DependencyObject which is a descendant of the specified object, using caller-defined VisualTreeHelperExtended.VisualResultCallback and VisualTreeHelperExtended.VisualDescendantFilterCallback methods.

public static DependencyObject GetDescendant(DependencyObject source, VisualTreeHelperExtended.VisualResultCallback resultCallback, VisualTreeHelperExtended.VisualDescendantFilterCallback filterCallback)
Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

resultCallback VisualTreeHelperExtended.VisualResultCallback

The result callback.

filterCallback VisualTreeHelperExtended.VisualDescendantFilterCallback

The filter call back.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents the descendant of the specified object that matches the user-defined criteria.

GetDescendant(DependencyObject, Type, int)

Returns a System.Windows.DependencyObject value that represents the n-th descendant visual object that is of the specified Type, where 'n' is specified using a skip count.

public static DependencyObject GetDescendant(DependencyObject source, Type desiredType, int skipCount)
Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

desiredType Type

The desired descendant Type.

skipCount int

The number of items to skip before returning a match.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents the n-th descendant visual object that is of the specified Type, where 'n' is specified using a skip count.

GetDescendant<T>(DependencyObject, int)

Returns a System.Windows.DependencyObject value that represents the n-th descendant visual object that is of the specified Type, where 'n' is specified using a skip count.

public static T GetDescendant<T>(DependencyObject source, int skipCount) where T : DependencyObject
Type Parameters:
T -

The desired descendant Type.

Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

skipCount int

The number of items to skip before returning a match.

Returns

T:

A System.Windows.DependencyObject value that represents the n-th descendant visual object that is of the specified Type, where 'n' is specified using a skip count.

GetDescendant<T>(DependencyObject, Predicate<T>, int)

Returns a System.Windows.DependencyObject value that represents the n-th descendant visual object that is of the specified Type, where 'n' is specified using a skip count.

public static T GetDescendant<T>(DependencyObject source, Predicate<T> condition, int skipCount) where T : DependencyObject
Type Parameters:
T -

The desired descendant Type.

Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

condition Predicate<T>

The optional condition predicate to use for matching objects. Any object is matched if this is not passed.

skipCount int

The number of items to skip before returning a match.

Returns

T:

A System.Windows.DependencyObject value that represents the n-th descendant visual object that is of the specified Type, where 'n' is specified using a skip count.

GetFirstChild(DependencyObject)

Returns a System.Windows.DependencyObject value that represents the first child visual object.

public static DependencyObject GetFirstChild(DependencyObject source)
Parameter Type Description
source DependencyObject

The visual whose child is returned.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents the first child visual object.

GetFirstDescendant(DependencyObject, Type)

Returns a System.Windows.DependencyObject value that represents the first descendant visual object that is of the specified Type.

public static DependencyObject GetFirstDescendant(DependencyObject source, Type desiredType)
Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

desiredType Type

The desired descendant Type.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents the first descendant visual object that is of the specified Type.

GetFirstDescendant(DependencyObject, Type, VisualDescendantFilterCallback)

Returns a System.Windows.DependencyObject value that represents the first descendant visual object that is of the specified Type, using the caller-defined VisualTreeHelperExtended.VisualDescendantFilterCallback method.

public static DependencyObject GetFirstDescendant(DependencyObject source, Type desiredType, VisualTreeHelperExtended.VisualDescendantFilterCallback filterCallback)
Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

desiredType Type

The desired descendant Type.

filterCallback VisualTreeHelperExtended.VisualDescendantFilterCallback

The filter call back.

Returns

DependencyObject:

A System.Windows.DependencyObject value that represents the first descendant visual object that is of the specified Type.

GetFirstFocusableAncestor(DependencyObject)

Returns a UIElement value that represents the first ancestor visual object that is focusable.

public static UIElement GetFirstFocusableAncestor(DependencyObject source)
Parameter Type Description
source DependencyObject

The visual whose ancestor is returned.

Returns

UIElement:

A UIElement value that represents the first ancestor visual object that is focusable.

GetFirstFocusableDescendant(DependencyObject)

Returns a UIElement value that represents the first descendant visual object that is focusable.

public static UIElement GetFirstFocusableDescendant(DependencyObject source)
Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

Returns

UIElement:

A UIElement value that represents the first descendant visual object that is focusable.

GetFirstFocusableDescendant(DependencyObject, VisualDescendantFilterCallback)

Returns a UIElement value that represents the first descendant visual object that is focusable, using the caller-defined VisualTreeHelperExtended.VisualDescendantFilterCallback method.

public static UIElement GetFirstFocusableDescendant(DependencyObject source, VisualTreeHelperExtended.VisualDescendantFilterCallback filterCallback)
Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

filterCallback VisualTreeHelperExtended.VisualDescendantFilterCallback

The filter call back.

Returns

UIElement:

A UIElement value that represents the first descendant visual object that is focusable.

GetFirstTabStopDescendant(DependencyObject)

Returns a Control value that represents the first descendant visual object that is a tab stop.

public static Control GetFirstTabStopDescendant(DependencyObject source)
Parameter Type Description
source DependencyObject

The visual whose descendant is returned.

Returns

Control:

A Control value that represents the first descendant visual object that is a tab stop.

Remarks

When a tab stop control is found, all siblings at the same level will be examined to locate and return the one with the lowest tab index.

GetItemsPanel(ItemsControl)

Returns a Panel value that represents the items panel of the specified ItemsControl.

public static Panel GetItemsPanel(ItemsControl source)
Parameter Type Description
source ItemsControl

The visual whose items panel is returned.

Returns

Panel:

A Panel value that represents the items panel.

GetNextFocusable(DependencyObject, DependencyObject)

Returns a UIElement value that represents the next visual object that is focusable.

public static UIElement GetNextFocusable(DependencyObject source, DependencyObject root)
Parameter Type Description
source DependencyObject

The visual used as a basis for the search.

root DependencyObject

The root visual used to limit the scope of the search.

Returns

UIElement:

A UIElement value that represents the next visual object that is focusable.

GetNextFocusable(DependencyObject, DependencyObject, bool)

Returns a UIElement value that represents the next visual object that is focusable.

public static UIElement GetNextFocusable(DependencyObject source, DependencyObject root, bool examineSourceDescendants)
Parameter Type Description
source DependencyObject

The visual used as a basis for the search.

root DependencyObject

The root visual used to limit the scope of the search.

examineSourceDescendants bool

Whether the descendants of source may be examined.

Returns

UIElement:

A UIElement value that represents the next visual object that is focusable.

GetPreviousFocusable(DependencyObject, DependencyObject)

Returns a UIElement value that represents the previous visual object that is focusable.

public static UIElement GetPreviousFocusable(DependencyObject source, DependencyObject root)
Parameter Type Description
source DependencyObject

The visual used as a basis for the search.

root DependencyObject

The root visual used to limit the scope of the search.

Returns

UIElement:

A UIElement value that represents the previous visual object that is focusable.

GetRoot(DependencyObject)

Returns the root System.Windows.DependencyObject in the visual tree.

public static DependencyObject GetRoot(DependencyObject source)
Parameter Type Description
source DependencyObject

The visual whose root is returned.

Returns

DependencyObject:

The root System.Windows.DependencyObject in the visual tree.

GetVisualParent(DependencyObject, bool)

Returns the visual parent of the specified source visual.

public static DependencyObject GetVisualParent(DependencyObject source, bool includeContentElements)
Parameter Type Description
source DependencyObject

The visual to examine.

includeContentElements bool

If the source is a ContentElement, whether to allow its logical parent to be returned.

Returns

DependencyObject:

The visual parent.

InvalidateMeasureForAllVisualsInSameTemplate(UIElement)

Invalidates measurement of all elements within the same source templated UIElement.

public static void InvalidateMeasureForAllVisualsInSameTemplate(UIElement sourceTemplatedElement)
Parameter Type Description
sourceTemplatedElement UIElement

The source templated UIElement.

InvalidateMeasureForVisualAncestorPath<PathEndType>(DependencyObject)

Invalidates measurement from the source visual up to an ancestor of type PathEndType.

public static void InvalidateMeasureForVisualAncestorPath<PathEndType>(DependencyObject source)
Type Parameters:
PathEndType -

The ancestor type at which to stop.

Parameter Type Description
source DependencyObject

The visual at which to start invalidation.

IsAtFocusEdgeWithin(UIElement, FocusNavigationDirection)

Tests if keyboard focus is currently positioned at a focus edge (i.e. first or last tab stop) within the given container.

public static bool IsAtFocusEdgeWithin(UIElement container, FocusNavigationDirection direction)
Parameter Type Description
container UIElement

The container to examine.

direction FocusNavigationDirection

The direction of focus to be examined, either Previous or Next.

Returns

bool:

true if currently positioned at a focus edge; otherwise false.

Exceptions

Type Condition
NotSupportedException

Thrown when the focus direction is not supported.

IsDescendant(DependencyObject, DependencyObject)

Returns whether the specified source System.Windows.DependencyObject is a descendant of the possible ancestor System.Windows.DependencyObject.

public static bool IsDescendant(DependencyObject possibleAncestor, DependencyObject source)
Parameter Type Description
possibleAncestor DependencyObject

The possible ancestor.

source DependencyObject

The initial object to examine.

Returns

bool:

true if the source System.Windows.DependencyObject is a descendant of the possible ancestor System.Windows.DependencyObject; otherwise, false.

IsFocusable(UIElement)

Returns whether the specified UIElement is focusable.

public static bool IsFocusable(UIElement element)
Parameter Type Description
element UIElement

The UIElement to examine.

Returns

bool:

true if the specified UIElement is focusable; otherwise, false.

IsInMainFocusScope()

Returns whether the element currently with keyboard focus is in the main focus scope.

public static bool IsInMainFocusScope()

Returns

bool:

true if the element currently with keyboard focus is in the main focus scope; otherwise, false.

IsInMainFocusScope(DependencyObject)

Returns whether the specified element is in the main focus scope.

public static bool IsInMainFocusScope(DependencyObject element)
Parameter Type Description
element DependencyObject

The element to examine.

Returns

bool:

true if the specified element is in the main focus scope; otherwise, false.

IsMouseOver(DependencyObject, DragEventArgs)

Returns whether the bounds of the specified System.Windows.DependencyObject contains the mouse without using a call to IsMouseOver, which can provide inaccurate results in mouse capture scenarios.

public static bool IsMouseOver(DependencyObject obj, DragEventArgs e)
Parameter Type Description
obj DependencyObject

UIElement instance to be tested.

e DragEventArgs

A DragEventArgs that can be used to determine mouse position.

Returns

bool:

true if the bounds of the element contain the mouse position; otherwise, false.

Remarks

The specified object must be a UIElement.

IsMouseOver(DependencyObject, MouseEventArgs)

Returns whether the bounds of the specified System.Windows.DependencyObject contains the mouse without using a call to IsMouseOver, which can provide inaccurate results in mouse capture scenarios.

public static bool IsMouseOver(DependencyObject obj, MouseEventArgs e)
Parameter Type Description
obj DependencyObject

UIElement instance to be tested.

e MouseEventArgs

A MouseEventArgs that can be used to determine mouse position.

Returns

bool:

true if the bounds of the element contain the mouse position; otherwise, false.

Remarks

The specified object must be a UIElement.

IsSameOrDescendant(DependencyObject, DependencyObject)

Returns whether the specified source System.Windows.DependencyObject is the same as or a descendant of the possible ancestor System.Windows.DependencyObject.

public static bool IsSameOrDescendant(DependencyObject possibleAncestor, DependencyObject source)
Parameter Type Description
possibleAncestor DependencyObject

The possible ancestor.

source DependencyObject

The initial object to examine.

Returns

bool:

true if the source System.Windows.DependencyObject is the same as or a descendant of the possible ancestor System.Windows.DependencyObject; otherwise, false.

IsVisual(DependencyObject)

Returns whether the specified System.Windows.DependencyObject is a Visual or Visual3D.

public static bool IsVisual(DependencyObject obj)
Parameter Type Description
obj DependencyObject

The System.Windows.DependencyObject to examine.

Returns

bool:

true if the specified System.Windows.DependencyObject is a Visual or Visual3D; otherwise, false.

Inherited Members