IRawElementProviderFragment.Navigate(NavigateDirection) Metodo

Definizione

Recupera l'elemento Automazione interfaccia utente in una direzione specificata all'interno dell'albero.

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

Parametri

direction
NavigateDirection

Direzione di navigazione.

Restituisce

IRawElementProviderFragment

Elemento nella direzione specificata o null se non è presente alcun elemento in tale direzione.

Esempio

Nel codice di esempio seguente viene illustrata l'implementazione di da una radice di Navigate frammento con un singolo elemento figlio. Poiché l'elemento di implementazione è una radice di frammento, non consente la navigazione a un elemento padre o a elementi di pari livello.

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

Nell'esempio seguente viene illustrata un'implementazione di un frammento che rappresenta un singolo elemento all'interno di una casella di riepilogo. In questo caso, l'elemento consente di spostarsi al padre e agli elementi di pari livello, ma non ad alcun elemento figlio.

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

Commenti

Le implementazioni del server Automazione interfaccia utente di questo metodo definiscono la struttura dell'albero degli elementi Automazione interfaccia utente.

Lo spostamento deve essere supportato verso l'alto verso l'alto, verso il basso verso il primo e l'ultimo figlio e successivamente verso i fratelli successivi e precedenti, come applicabile.

Ogni nodo figlio ha un solo elemento padre e deve essere inserito nella catena di elementi di pari livello raggiunti dall'elemento padre da FirstChild e LastChild.

Le relazioni tra elementi di pari livello devono essere identiche in entrambe le direzioni: se A è PreviousSiblingB, B è NextSibling. Un FirstChild oggetto non PreviousSiblingha e non NextSiblingha alcun oggetto LastChild .

Le radici del frammento non consentono la navigazione a un elemento padre o a elementi di pari livello; la navigazione tra le radici del frammento viene gestita dai provider di finestre predefiniti. Gli elementi nei frammenti devono passare solo ad altri elementi all'interno di tale frammento.

Si applica a

Vedi anche