Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
Export (0) Print
Expand All

ExpandCollapsePattern.Expand Method

Displays all child nodes, controls, or content of the AutomationElement.

Namespace:  System.Windows.Automation
Assembly:  UIAutomationClient (in UIAutomationClient.dll)

'Declaration
Public Sub Expand

ExceptionCondition
InvalidOperationException

Expand is called when the ExpandCollapseState = LeafNode.

This is a blocking method that returns after the AutomationElement has been expanded.

There are cases when a AutomationElementthat is marked as a leaf node might not know whether it has children until either the Collapse or the Expand method is called. This behavior is possible with a tree view control that does delayed loading of its child items. For example, Microsoft Windows Explorer might display the expand icon for a node even though there are currently no child items; when the icon is clicked, the control polls for child items, finds none, and removes the expand icon. In these cases clients should listen for a property-changed event on the ExpandCollapseState property by registering an event handler with the AddAutomationPropertyChangedEventHandler method.

In the following example, an AutomationElementrepresenting a menu item is passed to a function that attempts to expand or collapse the menu item based on its current ExpandCollapseState.

'''-------------------------------------------------------------------- 
''' <summary> 
''' Obtains an ExpandCollapsePattern control pattern from an  
''' automation element. 
''' </summary> 
''' <param name="targetControl"> 
''' The automation element of interest. 
''' </param> 
''' <returns> 
''' A ExpandCollapsePattern object. 
''' </returns> 
'''-------------------------------------------------------------------- 
Private Function GetExpandCollapsePattern( _
ByVal targetControl As AutomationElement) As ExpandCollapsePattern
    Dim expandCollapsePattern As ExpandCollapsePattern = Nothing 

    Try
        expandCollapsePattern = DirectCast( _
        targetControl.GetCurrentPattern(expandCollapsePattern.Pattern), _
        ExpandCollapsePattern)
    Catch exc As InvalidOperationException
        ' Object doesn't support the ExpandCollapsePattern control pattern. 
        Return Nothing 
    End Try 

    Return expandCollapsePattern

End Function 'GetExpandCollapsePattern    


...


'''-------------------------------------------------------------------- 
''' <summary> 
''' Programmatically expand or collapse a menu item. 
''' </summary> 
''' <param name="menuItem"> 
''' The target menu item. 
''' </param> 
'''-------------------------------------------------------------------- 
Private Sub ExpandCollapseMenuItem(ByVal menuItem As AutomationElement)
    If menuItem Is Nothing Then 
        Throw New ArgumentNullException( _
        "AutomationElement argument cannot be null.")
    End If 

    Dim expandCollapsePattern As ExpandCollapsePattern = _
    GetExpandCollapsePattern(menuItem)

    If expandCollapsePattern Is Nothing Then 
        Return 
    End If 

    If expandCollapsePattern.Current.ExpandCollapseState = _
    ExpandCollapseState.LeafNode Then 
        Return 
    End If 

    Try 
        If expandCollapsePattern.Current.ExpandCollapseState = _
        ExpandCollapseState.Expanded Then 
            ' Collapse the menu item.
            expandCollapsePattern.Collapse()

        ElseIf expandCollapsePattern.Current.ExpandCollapseState = _
        ExpandCollapseState.Collapsed OrElse _
        expandCollapsePattern.Current.ExpandCollapseState = _
        ExpandCollapseState.PartiallyExpanded Then 
            ' Expand the menu item.
            expandCollapsePattern.Expand()
        End If 
    Catch exc As ElementNotEnabledException
        ' Control is not enabled 
        ' TO DO: error handling. 
    Catch exc As InvalidOperationException
        ' Control is unable to perform operation  
        ' TO DO: error handling. 
    End Try 

End Sub 'ExpandCollapseMenuItem ' TO DO: error handling.

.NET Framework

Supported in: 4.6, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1
Show:
© 2015 Microsoft