.NET Framework (current version)
Gets the cached parent of this AutomationElement.
Assembly: UIAutomationClient (in UIAutomationClient.dll)
In the following example, the Name properties of a list box and its list items are cached. The list box element is available in the property of each list item element.
''' <summary> ''' Gets a list box element and caches the Name property of its children (the list items). ''' </summary> ''' <param name="elementMain">The UI Automation element for the parent window.</param> Sub CachePropertiesWithScope(ByVal elementMain As AutomationElement) Dim elementList As AutomationElement ' Set up the CacheRequest. Dim cacheRequest As New CacheRequest() cacheRequest.Add(AutomationElement.NameProperty) cacheRequest.TreeScope = TreeScope.Element Or TreeScope.Children ' Activate the CacheRequest and get the element. Note that the scope of the CacheRequest ' is in relation to the object being retrieved: the list box and its children are ' cached, not the main window and its children. Using cacheRequest.Activate() ' Load the list element and cache the specified properties for its descendants. Dim myCondition As New PropertyCondition(AutomationElement.ControlTypeProperty, ControlType.List) elementList = elementMain.FindFirst(TreeScope.Children, myCondition) If elementList Is Nothing Then Return End If ' The following illustrates that the children of the list are in the cache. Dim listItem As AutomationElement For Each listItem In elementList.CachedChildren Console.WriteLine(listItem.Cached.Name) Next listItem ' The following call raises an exception, because the IsEnabled property was not cached. '** Console.WriteLine(listItem.Cached.IsEnabled) ** ' The following illustrates that because the list box itself was cached, it is now ' available as the CachedParent of each list item. Dim child As AutomationElement = elementList.CachedChildren(0) Console.WriteLine(child.CachedParent.Cached.Name) End Using End Sub 'CachePropertiesWithScope
Return to top
Available since 3.0
Available since 3.0