IRawElementProviderFragment.Navigate(NavigateDirection) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Recupera o elemento Automatização da Interface de Utilizador numa 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 para navegar.
Devoluções
O elemento na direção especificada, ou null se não houver elemento nessa direção.
Exemplos
O seguinte exemplo de código mostra a implementação de Navigate por uma raiz fragmentada que tem um único elemento filho. Como o elemento implementador é uma raiz de fragmento, não permite 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 seguinte mostra uma implementação por um fragmento que representa um único item dentro de uma caixa de lista. Neste caso, o elemento permite a navegação ao seu progenitor e irmãos, mas não a quaisquer 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
Observações
As implementações deste método pelo servidor Automatização da Interface de Utilizador definem a estrutura da árvore de elementos do Automatização da Interface de Utilizador.
A navegação deve ser apoiada para cima para o progenitor, para baixo para o primeiro e último filho, e lateralmente para o próximo e irmãos anteriores, conforme aplicável.
Cada nó filho tem apenas um progenitor e deve ser colocado na cadeia de irmãos alcançada a partir do progenitor por FirstChild e LastChild.
As relações entre irmãos devem ser idênticas em ambas as direções: se A é de PreviousSiblingB , então B é de NextSiblingA . A FirstChild não PreviousSiblingtem , e a LastChild não NextSiblingtem .
Raízes fragmentadas não permitem a navegação até um progenitor ou irmãos; A navegação entre raízes de fragmentos é gerida pelos fornecedores de janelas padrão. Os elementos em fragmentos devem navegar apenas para outros elementos dentro desse fragmento.