WindowPattern.WindowPatternInformation.WindowInteractionState Property

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

Public ReadOnly Property WindowInteractionState As WindowInteractionState

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 Function GetWindowPattern(ByVal targetControl As AutomationElement) As WindowPattern
    Dim windowPattern As WindowPattern = Nothing

    Try
        windowPattern = DirectCast( _
        targetControl.GetCurrentPattern(windowPattern.Pattern), _
        WindowPattern)
    Catch
        ' object doesn't support the WindowPattern control pattern
        Return Nothing
    End Try
    ' Make sure the element is usable.
    If False = windowPattern.WaitForInputIdle(10000) Then
        ' Object not responding in a timely manner
        Return Nothing
    End If
    Return windowPattern
End Function 'GetWindowPattern

'''------------------------------------------------------------------------
''' <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 Sub SetVisualState(ByVal windowPattern As WindowPattern, _
    ByVal visualState As WindowVisualState)
    Try
        If (windowPattern.Current.WindowInteractionState = _
                WindowInteractionState.ReadyForUserInteraction) Then
            Select Case visualState
                Case WindowVisualState.Maximized
                    ' Confirm that the element can be maximized
                    If ((windowPattern.Current.CanMaximize) & _
                            Not (windowPattern.Current.IsModal)) Then
                        windowPattern.SetWindowVisualState( _
                        WindowVisualState.Maximized)
                    End If
                    ' TODO: additional processing
                Case WindowVisualState.Minimized
                    ' Confirm that the element can be minimized
                    If ((windowPattern.Current.CanMinimize) & _
                            Not (windowPattern.Current.IsModal)) Then
                        windowPattern.SetWindowVisualState( _
                        WindowVisualState.Minimized)
                    End If
                    ' TODO: additional processing
                Case WindowVisualState.Normal
                    windowPattern.SetWindowVisualState( _
                    WindowVisualState.Normal)
                Case Else
                    windowPattern.SetWindowVisualState( _
                    WindowVisualState.Normal)
            End Select
            ' TODO: additional processing
        End If
    Catch exc As InvalidOperationException
        ' object is not able to perform the requested action
        Return
    End Try
End Sub 'SetVisualState

.NET Framework
Available since 3.0
Return to top
Show: