WindowPattern.WindowPatternInformation.IsTopmost Property

Definition

Gets a value that specifies whether the AutomationElement is the topmost element in the z-order.

public:
 property bool IsTopmost { bool get(); };
public bool IsTopmost { get; }
member this.IsTopmost : bool
Public ReadOnly Property IsTopmost As Boolean

Property Value

true if the AutomationElement is topmost; otherwise false.

Examples

In the following example, an AutomationPropertyChangedEventHandler is defined to listen for changes to the IsTopmostProperty of an AutomationElement.

///--------------------------------------------------------------------
/// <summary>
/// Register for automation property change events of interest.
/// </summary>
/// <param name="targetControl">
/// The automation element of interest.
/// </param>
///--------------------------------------------------------------------
private void RegisterForPropertyChangedEvents(
    AutomationElement targetControl)
{
    AutomationPropertyChangedEventHandler propertyChangeListener = 
        new AutomationPropertyChangedEventHandler(
        OnTopmostPropertyChange);
    Automation.AddAutomationPropertyChangedEventHandler(
        targetControl, 
        TreeScope.Element, 
        propertyChangeListener, 
        WindowPattern.IsTopmostProperty);
}
'''--------------------------------------------------------------------
''' <summary>
''' Register for automation property change events of interest.
''' </summary>
''' <param name="targetControl">
''' The automation element of interest.
''' </param>
'''--------------------------------------------------------------------
Private Sub RegisterForPropertyChangedEvents( _
ByVal targetControl As AutomationElement)
    Dim propertyChangeListener As AutomationPropertyChangedEventHandler = _
        New AutomationPropertyChangedEventHandler(AddressOf _
        OnTopmostPropertyChange)
    Automation.AddAutomationPropertyChangedEventHandler( _
        targetControl, _
        TreeScope.Element, _
        propertyChangeListener, _
        WindowPattern.IsTopmostProperty)
End Sub
///--------------------------------------------------------------------
/// <summary>
/// Register for automation property change events of interest.
/// </summary>
/// <param name="src">Object that raised the event.</param>
/// <param name="e">Event arguments.</param>
///--------------------------------------------------------------------
private void OnTopmostPropertyChange(object src, AutomationPropertyChangedEventArgs e)
{
    // Make sure the element still exists. Elements such as tooltips
    // can disappear before the event is processed.
    AutomationElement sourceElement;
    try
    {
        sourceElement = src as AutomationElement;
    }
    catch (ElementNotAvailableException)
    {
        return;
    }
    
    // Get a WindowPattern from the source of the event.
    WindowPattern windowPattern = GetWindowPattern(sourceElement);
    if (windowPattern.Current.IsTopmost)
    {
        //TODO: event handling
    }
}
'''--------------------------------------------------------------------
''' <summary>
''' Register for automation property change events of interest.
''' </summary>
''' <param name="src">Object that raised the event.</param>
''' <param name="e">Event arguments.</param>
'''--------------------------------------------------------------------
Private Sub OnTopmostPropertyChange(ByVal src As Object, _
ByVal e As AutomationPropertyChangedEventArgs)
    ' Make sure the element still exists. Elements such as tooltips
    ' can disappear before the event is processed.
    Dim sourceElement As AutomationElement
    Try
        sourceElement = DirectCast(src, AutomationElement)
    Catch exc As ElementNotAvailableException
        Return
    End Try
    ' Get a WindowPattern from the source of the event.
    Dim windowPattern As WindowPattern = GetWindowPattern(sourceElement)
    If (WindowPattern.Current.IsTopmost) Then
        'TODO: event handling
    End If
End Sub

Applies to