IRawElementProviderFragment.Navigate(NavigateDirection) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
É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.