Compartilhar via


IRawElementProviderFragment.Navigate(NavigateDirection) Método

Definição

Recupera o elemento Automação da Interface do Usuário em uma direção especificada dentro da árvore.

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

A direção na qual navegar.

Retornos

IRawElementProviderFragment

O elemento na direção especificada ou null se não houver nenhum elemento nessa direção.

Exemplos

O código de exemplo a seguir mostra a implementação de uma raiz de Navigate fragmento que tem um único elemento filho. Como o elemento de implementação é uma raiz de fragmento, ele não habilita a navegação para um elemento pai ou elementos irmãos.

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

O exemplo a seguir mostra uma implementação por um fragmento que representa um único item dentro de uma caixa de listagem. Nesse caso, o elemento permite a navegação para seus pais e irmãos, mas não para filhos.

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

Comentários

As implementações do servidor Automação da Interface do Usuário desse método definem a estrutura da árvore de elementos Automação da Interface do Usuário.

A navegação deve ter suporte para cima para o pai, para baixo para o primeiro e último filho, e lateralmente para os irmãos próximos e anteriores, conforme aplicável.

Cada nó filho tem apenas um pai e deve ser colocado na cadeia de irmãos alcançados do pai por FirstChild e LastChild.

As relações entre irmãos devem ser idênticas em ambas as direções: se A é B PreviousSibling, então B é de NextSiblingA. A FirstChild não PreviousSiblingtem, e um LastChild não NextSiblingtem.

As raízes de fragmento não permitem a navegação para um pai ou irmãos; a navegação entre raízes de fragmento é tratada pelos provedores de janela padrão. Elementos em fragmentos devem navegar apenas para outros elementos dentro desse fragmento.

Aplica-se a

Confira também