Partager via


IRawElementProviderFragment.Navigate(NavigateDirection) Méthode

Définition

Récupère l’élément UI Automation dans une direction spécifiée dans l’arborescence.

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

Paramètres

direction
NavigateDirection

Direction dans laquelle naviguer.

Retours

IRawElementProviderFragment

Élément dans la direction spécifiée, ou null s’il n’y a aucun élément dans cette direction.

Exemples

L’exemple de code suivant montre l’implémentation d’une racine de Navigate fragment qui a un seul élément enfant. Étant donné que l’élément d’implémentation est une racine de fragment, il n’active pas la navigation vers un élément parent ou des éléments frères.

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

L’exemple suivant montre une implémentation par un fragment qui représente un élément unique dans une zone de liste. Dans ce cas, l’élément permet la navigation vers ses parents et ses frères, mais pas pour les enfants.

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

Remarques

Les implémentations du serveur UI Automation de cette méthode définissent la structure de l’arborescence d’éléments UI Automation.

La navigation doit être prise en charge vers le haut jusqu’au parent, vers le bas jusqu’au premier et le dernier enfant, et latéralement aux frères suivants et précédents, le cas échéant.

Chaque nœud enfant n’a qu’un seul parent et doit être placé dans la chaîne des frères et sœurs atteintes du parent par FirstChild et LastChild.

Les relations entre frères doivent être identiques dans les deux sens : si A est B PreviousSibling, alors B est A’s NextSibling. A FirstChild n’a pas PreviousSibling, et un LastChild n’a pas NextSibling.

Les racines de fragment n’activent pas la navigation vers un parent ou un frère ; la navigation entre les racines de fragments est gérée par les fournisseurs de fenêtres par défaut. Les éléments dans les fragments doivent uniquement naviguer vers d’autres éléments de ce fragment.

S’applique à

Voir aussi