IRawElementProviderFragment.Navigate(NavigateDirection) Methode

Definitie

Hiermee haalt u het UI Automation element op in een opgegeven richting binnen de structuur.

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

Parameters

direction
NavigateDirection

De richting waarin u wilt navigeren.

Retouren

Het element in de opgegeven richting of null als er geen element in die richting is.

Voorbeelden

In de volgende voorbeeldcode ziet u de implementatie van Navigate een fragmenthoofdmap met één onderliggend element. Omdat het implementerende element een fragmenthoofdmap is, wordt navigatie naar een bovenliggend element of onderliggende elementen niet ingeschakeld.

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

In het volgende voorbeeld ziet u een implementatie op basis van een fragment dat één item in een keuzelijst vertegenwoordigt. In dit geval maakt het element navigatie naar de bovenliggende en broers en zussen mogelijk, maar niet naar kinderen.

/// <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

Opmerkingen

De implementaties van de UI Automation-server van deze methode definiëren de structuur van de UI Automation elementstructuur.

Navigatie moet naar boven worden ondersteund, naar boven, naar beneden naar het eerste en laatste kind, en lateraal naar de volgende en vorige broers en zussen, indien van toepassing.

Elk onderliggend knooppunt heeft slechts één bovenliggend knooppunt en moet worden geplaatst in de keten van broers en zussen die van het bovenliggende FirstChild item zijn bereikt en LastChild.

Relaties tussen broers en zussen moeten in beide richtingen identiek zijn: als A B's PreviousSiblingis, dan is B A's NextSibling. A FirstChild heeft geen PreviousSibling, en een LastChild heeft geen NextSibling.

Fragmentwortels maken navigatie naar bovenliggende of broers en zussen niet mogelijk; navigatie tussen fragmentwortels wordt verwerkt door de standaardvensterproviders. Elementen in fragmenten mogen alleen naar andere elementen in dat fragment navigeren.

Van toepassing op

Zie ook