Export (0) Print
Expand All

WindowPattern.SetWindowVisualState Method

Changes the WindowVisualState of the window.

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

public void SetWindowVisualState (
	WindowVisualState state
)
public void SetWindowVisualState (
	WindowVisualState state
)
public function SetWindowVisualState (
	state : WindowVisualState
)
Not applicable.

Parameters

state

The requested WindowVisualState of the window.

Exception typeCondition

InvalidOperationException

A control does not support a requested behavior.

In the following example, a WindowPatterncontrol pattern is obtained from an AutomationElement and is subsequently used to specify the visual state of the AutomationElement.

    ///--------------------------------------------------------------------
    /// <summary>
    /// Obtains a WindowPattern control pattern from an automation element.
    /// </summary>
    /// <param name="targetControl">
    /// The automation element of interest.
    /// </param>
    /// <returns>
    /// A WindowPattern object.
    /// </returns>
    ///--------------------------------------------------------------------
    private WindowPattern GetWindowPattern(AutomationElement targetControl)
    {
        WindowPattern windowPattern = null;

        try
        {
            windowPattern =
                targetControl.GetCurrentPattern(WindowPattern.Pattern)
                as WindowPattern;
        }
        catch (InvalidOperationException)
        {
            // object doesn't support the WindowPattern control pattern
            return null;
        }
        // Make sure the element is usable.
        if (false == windowPattern.WaitForInputIdle(10000))
        {
            // Object not responding in a timely manner
            return null;
        }
        return windowPattern;
    }

...

    ///--------------------------------------------------------------------
    /// <summary>
    /// Calls the WindowPattern.SetVisualState() method for an associated 
    /// automation element.
    /// </summary>
    /// <param name="windowPattern">
    /// The WindowPattern control pattern obtained from
    /// an automation element.
    /// </param>
    /// <param name="visualState">
    /// The specified WindowVisualState enumeration value.
    /// </param>
    ///--------------------------------------------------------------------
    private void SetVisualState(WindowPattern windowPattern, 
        WindowVisualState visualState)
    {
        try
        {
            if (windowPattern.Current.WindowInteractionState ==
                WindowInteractionState.ReadyForUserInteraction)
            {
                switch (visualState)
                {
                    case WindowVisualState.Maximized:
                        // Confirm that the element can be maximized
                        if ((windowPattern.Current.CanMaximize) && 
                            !(windowPattern.Current.IsModal))
                        {
                            windowPattern.SetWindowVisualState(
                                WindowVisualState.Maximized);
                            // TODO: additional processing
                        }
                        break;
                    case WindowVisualState.Minimized:
                        // Confirm that the element can be minimized
                        if ((windowPattern.Current.CanMinimize) &&
                            !(windowPattern.Current.IsModal))
                        {
                            windowPattern.SetWindowVisualState(
                                WindowVisualState.Minimized);
                            // TODO: additional processing
                        }
                        break;
                    case WindowVisualState.Normal:
                        windowPattern.SetWindowVisualState(
                            WindowVisualState.Normal);
                        break;
                    default:
                        windowPattern.SetWindowVisualState(
                            WindowVisualState.Normal);
                        // TODO: additional processing
                        break;
                }
            }
        }
        catch (InvalidOperationException)
        {
            // object is not able to perform the requested action
            return;
        }
    }

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