IRawElementProviderFragment.Navigate(NavigateDirection) Methode
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee haalt u het UI Automation element op in een opgegeven richting binnen de structuur.
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
Parameters
- direction
- NavigateDirection
De richting waarin u wilt navigeren.
Retouren
Het element in de opgegeven richting of null als er geen element in die richting is.
Voorbeelden
In de volgende voorbeeldcode ziet u de implementatie van Navigate een fragmenthoofdmap met één onderliggend element. Omdat het implementerende element een fragmenthoofdmap is, wordt navigatie naar een bovenliggend element of onderliggende elementen niet ingeschakeld.
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
In het volgende voorbeeld ziet u een implementatie op basis van een fragment dat één item in een keuzelijst vertegenwoordigt. In dit geval maakt het element navigatie naar de bovenliggende en broers en zussen mogelijk, maar niet naar kinderen.
/// <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
Opmerkingen
De implementaties van de UI Automation-server van deze methode definiëren de structuur van de UI Automation elementstructuur.
Navigatie moet naar boven worden ondersteund, naar boven, naar beneden naar het eerste en laatste kind, en lateraal naar de volgende en vorige broers en zussen, indien van toepassing.
Elk onderliggend knooppunt heeft slechts één bovenliggend knooppunt en moet worden geplaatst in de keten van broers en zussen die van het bovenliggende FirstChild item zijn bereikt en LastChild.
Relaties tussen broers en zussen moeten in beide richtingen identiek zijn: als A B's PreviousSiblingis, dan is B A's NextSibling. A FirstChild heeft geen PreviousSibling, en een LastChild heeft geen NextSibling.
Fragmentwortels maken navigatie naar bovenliggende of broers en zussen niet mogelijk; navigatie tussen fragmentwortels wordt verwerkt door de standaardvensterproviders. Elementen in fragmenten mogen alleen naar andere elementen in dat fragment navigeren.