Export (0) Print
Expand All

ExpandCollapsePattern.ExpandCollapsePatternInformation.ExpandCollapseState Property

Gets the ExpandCollapseState of the AutomationElement.

Namespace: System.Windows.Automation
Assembly: UIAutomationClient (in uiautomationclient.dll)
XML Namespace:  http://schemas.microsoft.com/winfx/2006/xaml/presentation

public ExpandCollapseState ExpandCollapseState { get; }
/** @property */
public ExpandCollapseState get_ExpandCollapseState ()

public function get ExpandCollapseState () : ExpandCollapseState

Not applicable.

Property Value

The ExpandCollapseState of AutomationElement.

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.
        }
    }

Windows 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0

Community Additions

ADD
Show:
© 2014 Microsoft