IRawElementProviderFragment.Navigate(NavigateDirection) Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Pobiera element automatyzacja interfejsu użytkownika w określonym kierunku w drzewie.
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
Parametry
- direction
- NavigateDirection
Kierunek nawigacji.
Zwraca
Element w określonym kierunku lub null
jeśli w tym kierunku nie ma żadnego elementu.
Przykłady
Poniższy przykładowy kod przedstawia implementację elementu głównego fragmentu Navigate z pojedynczym elementem podrzędnym. Ponieważ element implementowania jest elementem głównym fragmentu, nie umożliwia nawigacji do elementów nadrzędnych ani elementów równorzędnych.
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
W poniższym przykładzie pokazano implementację według fragmentu reprezentującego pojedynczy element w polu listy. W tym przypadku element umożliwia nawigację do elementu nadrzędnego i równorzędnego, ale nie do żadnych elementów podrzędnych.
/// <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
Uwagi
Implementacje serwera automatyzacja interfejsu użytkownika tej metody definiują strukturę drzewa elementów automatyzacja interfejsu użytkownika.
Nawigacja musi być obsługiwana w górę do elementu nadrzędnego, w dół do pierwszego i ostatniego elementu podrzędnego, a następnie do następnego i poprzedniego elementu równorzędnego, zgodnie z zastosowaniem.
Każdy węzeł podrzędny ma tylko jeden element nadrzędny i musi zostać umieszczony w łańcuchu elementów równorzędnych pochodzących z elementu nadrzędnego przez FirstChild elementy i LastChild.
Relacje między elementami równorzędnymi muszą być identyczne w obu kierunkach: jeśli wartość A to B PreviousSibling, to B to NextSibling. Element FirstChild nie PreviousSiblingma wartości , a element LastChild nie NextSiblingma wartości .
Katalogi główne fragmentów nie umożliwiają nawigacji do elementu nadrzędnego lub równorzędnego; nawigacja między elementami nadrzędnymi fragmentów jest obsługiwana przez domyślnych dostawców okien. Elementy w fragmentach muszą przechodzić tylko do innych elementów w tym fragmentowaniu.