IRawElementProviderFragment.Navigate(NavigateDirection) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Ruft das Benutzeroberflächenautomatisierung-Element in einer angegebenen Richtung innerhalb der Struktur ab.
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
Parameter
- direction
- NavigateDirection
Die Richtung für die Navigation.
Gibt zurück
Das Element in der angegebenen Richtung oder null
wenn kein Element in dieser Richtung vorhanden ist.
Beispiele
Der folgende Beispielcode zeigt die Implementierung eines Navigate Fragmentstamms mit einem einzelnen untergeordneten Element. Da das implementierende Element ein Fragmentstamm ist, wird die Navigation zu einem übergeordneten Element oder gleichgeordneten Elementen nicht aktiviert.
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
Das folgende Beispiel zeigt eine Implementierung durch ein Fragment, das ein einzelnes Element in einem Listenfeld darstellt. In diesem Fall ermöglicht das Element die Navigation zu den übergeordneten und gleichgeordneten Elementen, aber nicht zu untergeordneten Elementen.
/// <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
Hinweise
Die Benutzeroberflächenautomatisierung Serverimplementierungen dieser Methode definieren die Struktur der Benutzeroberflächenautomatisierung Elementstruktur.
Die Navigation muss nach oben bis zum übergeordneten Element, nach unten zum ersten und letzten Untergeordneten und später zum nächsten und vorherigen gleichgeordneten Element unterstützt werden, sofern zutreffend.
Jeder untergeordnete Knoten hat nur ein übergeordnetes Element und muss in der Kette von gleichgeordneten Elementen platziert werden, die von dem übergeordneten Element und vom übergeordneten Element FirstChild LastChilderreicht werden.
Beziehungen zwischen Gleichgeordneten müssen in beiden Richtungen identisch sein: Wenn A die B PreviousSiblingist, dann ist B die A.NextSibling A FirstChild hat nein PreviousSibling, und ein LastChild hat nein NextSibling.
Fragmentwurzeln ermöglichen keine Navigation zu einem übergeordneten oder gleichgeordneten Element; die Navigation zwischen Fragmentwurzeln wird von den Standardfensteranbietern behandelt. Elemente in Fragmenten müssen nur zu anderen Elementen innerhalb dieses Fragments navigieren.