IRawElementProviderFragment.Navigate(NavigateDirection) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Recupera el elemento Automatización de la interfaz de usuario en una dirección especificada dentro del árbol.
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
Parámetros
- direction
- NavigateDirection
Dirección en la que se va a navegar.
Devoluciones
Elemento en la dirección especificada o null
si no hay ningún elemento en esa dirección.
Ejemplos
En el código de ejemplo siguiente se muestra la implementación de por una raíz de Navigate fragmento que tiene un único elemento secundario. Dado que el elemento de implementación es una raíz de fragmento, no habilita la navegación a un elemento primario ni a elementos del mismo nivel.
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
En el ejemplo siguiente se muestra una implementación por un fragmento que representa un único elemento dentro de un cuadro de lista. En este caso, el elemento permite la navegación a sus elementos primarios y del mismo nivel, pero no a ningún elemento secundario.
/// <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
Comentarios
Las implementaciones del servidor Automatización de la interfaz de usuario de este método definen la estructura del árbol de elementos Automatización de la interfaz de usuario.
La navegación debe admitirse hacia arriba hasta el elemento primario, hacia abajo hasta el primer y último elemento secundario, y lateralmente a los elementos del mismo nivel siguientes y anteriores, según corresponda.
Cada nodo secundario solo tiene un elemento primario y debe colocarse en la cadena de elementos del mismo nivel alcanzados desde el elemento primario por FirstChild y LastChild.
Las relaciones entre los elementos del mismo nivel deben ser idénticas en ambas direcciones: si A es BPreviousSibling, B es .NextSibling No FirstChild tiene , PreviousSiblingy un LastChild no NextSiblingtiene .
Las raíces de fragmentos no habilitan la navegación a un elemento primario o relacionado; La navegación entre raíces de fragmentos se controla mediante los proveedores de ventanas predeterminados. Los elementos de los fragmentos solo deben navegar a otros elementos de ese fragmento.