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, in der navigiert werden soll.
Gibt zurück
Das Element in der angegebenen Richtung oder null wenn es kein Element in dieser Richtung gibt.
Beispiele
Der folgende Beispielcode zeigt die Implementierung Navigate eines Fragmentstamms mit einem einzelnen untergeordneten Element. Da es sich bei dem implementierenden Element um einen Fragmentstamm handelt, 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 elementen und gleichgeordneten Elementen, jedoch 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 Element und nach unten 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 der gleichgeordneten Elemente platziert werden, die vom übergeordneten Element erreicht werden, und FirstChildLastChild.
Beziehungen zwischen gleichgeordneten Gleichgeordneten müssen in beide Richtungen identisch sein: Wenn A 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 element 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.