IRawElementProviderFragment.Navigate(NavigateDirection) Metoda

Definicja

Pobiera Automatyzacja interfejsu użytkownikaUI Automation element w określonym kierunku w drzewie.Retrieves the Automatyzacja interfejsu użytkownikaUI Automation element in a specified direction within the tree.

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

Parametry

direction
NavigateDirection

Kierunek, w którym ma zostać przechodzenie.The direction in which to navigate.

Zwraca

IRawElementProviderFragment

Element w określonym kierunku lub null Jeśli w tym kierunku nie ma elementuThe element in the specified direction, or null if there is no element in that direction

Przykłady

Poniższy przykładowy kod przedstawia implementację elementu Navigate głównego fragmentu, który ma pojedynczy element podrzędny.The following example code shows the implementation of Navigate by a fragment root that has a single child element. Ponieważ element implementujący jest korzeniem fragmentu, nie umożliwia nawigowania do elementu nadrzędnego ani elementów równorzędnych.Because the implementing element is a fragment root, it does not enable navigation to a parent element or sibling elements.

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

Poniższy przykład pokazuje implementację przez fragment, który reprezentuje pojedynczy element w polu listy.The following example shows an implementation by a fragment that represents a single item within a list box. W tym przypadku element umożliwia nawigację do jego elementu nadrzędnego i elementów równorzędnych, ale nie do żadnych elementów podrzędnych.In this case, the element enables navigation to its parent and siblings, but not to any children.

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

Uwagi

Automatyzacja interfejsu użytkownikaUI AutomationImplementacje tej metody serwera definiują strukturę Automatyzacja interfejsu użytkownikaUI Automation drzewa elementów.The Automatyzacja interfejsu użytkownikaUI Automation server's implementations of this method define the structure of the Automatyzacja interfejsu użytkownikaUI Automation element tree.

Nawigacja musi być obsługiwana w górę do elementu nadrzędnego, w dół do pierwszego i ostatniego elementu podrzędnego, a później do następnych i poprzednich elementów równorzędnych, zgodnie z wymaganiami.Navigation must be supported upward to the parent, downward to the first and last child, and laterally to the next and previous siblings, as applicable.

Każdy węzeł podrzędny ma tylko jeden element nadrzędny i musi być umieszczony w łańcuchu elementów równorzędnych osiągniętych od elementu nadrzędnego przez FirstChild i LastChild .Each child node has only one parent and must be placed in the chain of siblings reached from the parent by FirstChild and LastChild.

Relacje między elementami równorzędnymi muszą być identyczne w obu kierunkach: Jeśli A jest B PreviousSibling , a następnie b to NextSibling .Relationships among siblings must be identical in both directions: if A is B's PreviousSibling, then B is A's NextSibling. A nie FirstChild ma PreviousSibling i nie LastChild ma NextSibling .A FirstChild has no PreviousSibling, and a LastChild has no NextSibling.

Elementy główne fragmentów nie umożliwiają nawigowania do elementów nadrzędnych ani równorzędnych; Nawigowanie między elementami głównymi fragmentów jest obsługiwane przez domyślnych dostawców okien.Fragment roots do not enable navigation to a parent or siblings; navigation among fragment roots is handled by the default window providers. Elementy w fragmentach muszą nawigować tylko do innych elementów w tym fragmencie.Elements in fragments must navigate only to other elements within that fragment.

Dotyczy

Zobacz też