Was this page helpful?
Your feedback about this content is important. Let us know what you think.
Additional feedback?
1500 characters remaining
ExpandCollapseState Property
Collapse the table of content
Expand the table of content

ExpandCollapsePattern.ExpandCollapsePatternInformation.ExpandCollapseState Property

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

public ExpandCollapseState ExpandCollapseState { get; }

ExpandCollapseState refers to the visibility of immediate child objects only; it does not refer to the visibility of all descendant objects.

The default value is Expanded.

In the following example, an AutomationElement 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 ExpandCollapsePattern GetExpandCollapsePattern(
    AutomationElement targetControl)
{
    ExpandCollapsePattern expandCollapsePattern = null;

    try
    {
        expandCollapsePattern =
            targetControl.GetCurrentPattern(
            ExpandCollapsePattern.Pattern)
            as ExpandCollapsePattern;
    }
    // Object doesn't support the ExpandCollapsePattern control pattern. 
    catch (InvalidOperationException)
    {
        return null;
    }

    return expandCollapsePattern;
}


...


///-------------------------------------------------------------------- 
/// <summary> 
/// Programmatically expand or collapse a menu item. 
/// </summary> 
/// <param name="menuItem">
/// The target menu item. 
/// </param> 
///-------------------------------------------------------------------- 
private void ExpandCollapseMenuItem(
    AutomationElement menuItem)
{
    if (menuItem == null)
    {
        throw new ArgumentNullException(
            "AutomationElement argument cannot be null.");
    }

    ExpandCollapsePattern expandCollapsePattern =
        GetExpandCollapsePattern(menuItem);

    if (expandCollapsePattern == null)
    {
        return;
    }

    if (expandCollapsePattern.Current.ExpandCollapseState ==
        ExpandCollapseState.LeafNode)
    {
        return;
    }

    try
    {
        if (expandCollapsePattern.Current.ExpandCollapseState == ExpandCollapseState.Expanded)
        {
            // Collapse the menu item.
            expandCollapsePattern.Collapse();
        }
        else if (expandCollapsePattern.Current.ExpandCollapseState == ExpandCollapseState.Collapsed ||
            expandCollapsePattern.Current.ExpandCollapseState == ExpandCollapseState.PartiallyExpanded)
        {
            // Expand the menu item.
            expandCollapsePattern.Expand();
        }
    }
    // Control is not enabled 
    catch (ElementNotEnabledException)
    {
        // TO DO: error handling.
    }
    // Control is unable to perform operation. 
    catch (InvalidOperationException)
    {
        // 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