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