Export (0) Print
Expand All
This topic has not yet been rated - Rate this topic

ExpandCollapsePattern.Collapse Method

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

Namespace:  System.Windows.Automation
Assembly:  UIAutomationClient (in UIAutomationClient.dll)
'Declaration
Public Sub Collapse
ExceptionCondition
InvalidOperationException

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 

    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.5.1, 4.5, 4, 3.5, 3.0

.NET Framework Client Profile

Supported in: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (Server Core Role not supported), Windows Server 2008 R2 (Server Core Role supported with SP1 or later; Itanium not supported)

The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

Did you find this helpful?
(1500 characters remaining)
Thank you for your feedback
Show:
© 2014 Microsoft. All rights reserved.