Compartir vía


IRawElementProviderFragment.Navigate(NavigateDirection) Método

Definición

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

IRawElementProviderFragment

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.

Se aplica a

Consulte también