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, in der navigiert werden soll.

Gibt zurück

Das Element in der angegebenen Richtung oder null wenn es kein Element in dieser Richtung gibt.

Beispiele

Der folgende Beispielcode zeigt die Implementierung Navigate eines Fragmentstamms mit einem einzelnen untergeordneten Element. Da es sich bei dem implementierenden Element um einen Fragmentstamm handelt, 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 elementen und gleichgeordneten Elementen, jedoch 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 Element und nach unten 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 der gleichgeordneten Elemente platziert werden, die vom übergeordneten Element erreicht werden, und FirstChildLastChild.

Beziehungen zwischen gleichgeordneten Gleichgeordneten müssen in beide Richtungen identisch sein: Wenn A 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 element 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:

Weitere Informationen