IRawElementProviderFragment.Navigate(NavigateDirection) Methode

Definition

Ruft das Benutzeroberflächenautomatisierung-Element in einer angegebenen Richtung innerhalb der Struktur ab.

public:
 System::Windows::Automation::Provider::IRawElementProviderFragment ^ Navigate(System::Windows::Automation::Provider::NavigateDirection direction);
public System.Windows.Automation.Provider.IRawElementProviderFragment Navigate (System.Windows.Automation.Provider.NavigateDirection direction);
abstract member Navigate : System.Windows.Automation.Provider.NavigateDirection -> System.Windows.Automation.Provider.IRawElementProviderFragment
Public Function Navigate (direction As NavigateDirection) As IRawElementProviderFragment

Parameter

direction
NavigateDirection

Die Richtung für die Navigation.

Gibt zurück

IRawElementProviderFragment

Das Element in der angegebenen Richtung oder null wenn kein Element in dieser Richtung vorhanden ist.

Beispiele

Der folgende Beispielcode zeigt die Implementierung eines Navigate Fragmentstamms mit einem einzelnen untergeordneten Element. Da das implementierende Element ein Fragmentstamm ist, wird die Navigation zu einem übergeordneten Element oder gleichgeordneten Elementen nicht aktiviert.

IRawElementProviderFragment IRawElementProviderFragment.Navigate(NavigateDirection direction)
{
    if ((direction == NavigateDirection.FirstChild)
        || (direction == NavigateDirection.LastChild)) 
    {
        // Return the provider that is the sole child of this one.
        return (IRawElementProviderFragment)ChildControl;
    }
    else
    {
        return null;
    };
}
Function Navigate(ByVal direction As NavigateDirection) As IRawElementProviderFragment _
    Implements IRawElementProviderFragment.Navigate

    If direction = NavigateDirection.FirstChild _
        OrElse direction = NavigateDirection.LastChild Then
        ' Return the provider that is the sole child of this one.
        Return CType(ChildControl, IRawElementProviderFragment)
    Else
        Return Nothing
    End If

End Function 'IRawElementProviderFragment.Navigate

Das folgende Beispiel zeigt eine Implementierung durch ein Fragment, das ein einzelnes Element in einem Listenfeld darstellt. In diesem Fall ermöglicht das Element die Navigation zu den übergeordneten und gleichgeordneten Elementen, aber nicht zu untergeordneten Elementen.

/// <summary>
/// Navigate to adjacent elements in the automation tree.
/// </summary>
/// <param name="direction">Direction to navigate.</param>
/// <returns>The element in that direction, or null.</returns>
/// <remarks>
/// parentControl is the provider for the list box.
/// parentItems is the collection of list item providers.
/// </remarks>
public IRawElementProviderFragment Navigate(NavigateDirection direction)
{
    int myIndex = parentItems.IndexOf(this);
    if (direction == NavigateDirection.Parent)
    {
        return (IRawElementProviderFragment)parentControl;
    }
    else if (direction == NavigateDirection.NextSibling)
    {
        if (myIndex < parentItems.Count - 1)
        {
            return (IRawElementProviderFragment)parentItems[myIndex + 1];
        }
        else
        {
            return null;
        }
    }
    else if (direction == NavigateDirection.PreviousSibling)
    {
        if (myIndex > 0)
        {
            return (IRawElementProviderFragment)parentItems[myIndex - 1];
        }
        else
        {
            return null;
        }
    }
    else
    {
        return null;
    }
}
''' <summary>
''' Navigate to adjacent elements in the automation tree.
''' </summary>
''' <param name="direction">Direction to navigate.</param>
''' <returns>The element in that direction, or null.</returns>
''' <remarks>
''' parentControl is the provider for the list box.
''' parentItems is the collection of list item providers.
''' </remarks>
Public Function Navigate(ByVal direction As NavigateDirection) As IRawElementProviderFragment _
    Implements IRawElementProviderFragment.Navigate

    Dim myIndex As Integer = parentItems.IndexOf(Me)
    If direction = NavigateDirection.Parent Then
        Return DirectCast(parentControl, IRawElementProviderFragment)
    ElseIf direction = NavigateDirection.NextSibling Then
        If myIndex < parentItems.Count - 1 Then
            Return DirectCast(parentItems((myIndex + 1)), IRawElementProviderFragment)
        Else
            Return Nothing
        End If
    ElseIf direction = NavigateDirection.PreviousSibling Then
        If myIndex > 0 Then
            Return DirectCast(parentItems((myIndex - 1)), IRawElementProviderFragment)
        Else
            Return Nothing
        End If
    Else
        Return Nothing
    End If

End Function 'Navigate

Hinweise

Die Benutzeroberflächenautomatisierung Serverimplementierungen dieser Methode definieren die Struktur der Benutzeroberflächenautomatisierung Elementstruktur.

Die Navigation muss nach oben bis zum übergeordneten Element, nach unten zum ersten und letzten Untergeordneten und später zum nächsten und vorherigen gleichgeordneten Element unterstützt werden, sofern zutreffend.

Jeder untergeordnete Knoten hat nur ein übergeordnetes Element und muss in der Kette von gleichgeordneten Elementen platziert werden, die von dem übergeordneten Element und vom übergeordneten Element FirstChild LastChilderreicht werden.

Beziehungen zwischen Gleichgeordneten müssen in beiden Richtungen identisch sein: Wenn A die B PreviousSiblingist, dann ist B die A.NextSibling A FirstChild hat nein PreviousSibling, und ein LastChild hat nein NextSibling.

Fragmentwurzeln ermöglichen keine Navigation zu einem übergeordneten oder gleichgeordneten Element; die Navigation zwischen Fragmentwurzeln wird von den Standardfensteranbietern behandelt. Elemente in Fragmenten müssen nur zu anderen Elementen innerhalb dieses Fragments navigieren.

Gilt für

Siehe auch