Export (0) Print
Expand All

ExpandCollapsePattern.Collapse Method

Hides all descendant nodes, controls, or content of the AutomationElement.

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

Public Sub Collapse


Collapse is called when the ExpandCollapseState = LeafNode.

This is a blocking method that returns after the UI Automation element has been collapsed.

There are cases when a UI Automation element that 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, a UI Automation element representing 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 

        expandCollapsePattern = DirectCast( _
        targetControl.GetCurrentPattern(expandCollapsePattern.Pattern), _
    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 = _

    If expandCollapsePattern Is Nothing Then 
    End If 

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

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

        ElseIf expandCollapsePattern.Current.ExpandCollapseState = _
        ExpandCollapseState.Collapsed OrElse _
        expandCollapsePattern.Current.ExpandCollapseState = _
        ExpandCollapseState.PartiallyExpanded Then 
            ' Expand the menu item.
        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
© 2015 Microsoft