Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Bouw interactie-ervaringen in uw Windows App SDK-app die goed werken met gamepad- en afstandsbedieningsinvoer, naast muis, toetsenbord en aanraakscherm.
Overzicht
Een gamepad en een afstandsbediening zijn de belangrijkste invoermiddelen voor de Xbox 10-foot-interface. Uw Windows-app moet bruikbaar en toegankelijk zijn via deze invoertypen, evenals de traditionele pc-invoertypen.
Zie Ontwerpen voor Xbox en TV voor algemene ontwerprichtlijnen voor de 10-foot-ervaring.
Sleutel-API's
Gamepad- en afstandsbediening-knoppen
De volgende tabel bevat hardwareknoppen en welk invoerapparaat deze ondersteunt.
| Knop | Gamepad | Afstandsbediening |
|---|---|---|
| A/Selecteren | Yes | Yes |
| B/Terug | Yes | Yes |
| D-pad | Yes | Yes |
| Menulijst | Yes | Yes |
| Bekijk | Yes | Yes |
| X en Y | Yes | Nee. |
| Linker-/rechterstick | Yes | Nee. |
| Triggers van links/rechts | Yes | Nee. |
| Links/rechts bumpers | Yes | Nee. |
Ingebouwde invoerkoppeling
Windows wijst automatisch toetsenbordinvoer toe aan gamepad en afstandsbediening:
| Keyboard | Gamepad/afstandsbediening |
|---|---|
| Pijltoetsen | D-pad (ook wel linkerstick op een gamepad) |
| Spatiebalk | A-/Select-knop |
| Invoeren | A-/Select-knop |
| Ontsnappen | B/Vorige knop |
Navigatie met XY-focus
Met XY-focusnavigatie kunnen gebruikers door de gebruikersinterface van uw app navigeren in vier richtingen (omhoog, omlaag, links, rechts) met behulp van het D-pad of de linkerstick.
XY-navigatie inschakelen
XY-focusnavigatie is ingebouwd in het XAML-framework. Stel XYFocusKeyboardNavigation in op een container om deze in te schakelen:
<StackPanel XYFocusKeyboardNavigation="Enabled">
<Button Content="Button 1"/>
<Button Content="Button 2"/>
<Button Content="Button 3"/>
</StackPanel>
Richtingsnavigatie overschrijven
Gebruik de eigenschappen XYFocusUp, XYFocusDown, XYFocusLeft en XYFocusRight om het standaardnavigatiegedrag te overschrijven:
<Button Content="Button 1"
XYFocusRight="{x:Bind Button2}"/>
<Button x:Name="Button2" Content="Button 2"
XYFocusLeft="{x:Bind Button1}"/>
Focus visueel
De focus visual is een rand die het UI-element met de huidige focus markeert. Gebruik de ingebouwde focusvisual om gebruikers te helpen navigeren met gamepad of beheer op afstand.
Pas in WinUI 3 de focusvisual aan door eigenschappen in te stellen op FrameworkElement:
<Button Content="My Button"
FocusVisualPrimaryBrush="Red"
FocusVisualPrimaryThickness="2"
FocusVisualSecondaryBrush="Yellow"
FocusVisualSecondaryThickness="1"/>
Focus op betrokkenheid
Voor focusbetrokkenheid moet de gebruiker op de knop A/Selecteren drukken om te communiceren met een gericht besturingselement. Dit voorkomt onbedoelde activering tijdens het navigeren met het D-pad.
Stel IsFocusEngagementEnabled in voor besturingselementen die baat hebben bij dit gedrag:
<Slider IsFocusEngagementEnabled="True"/>
Wanneer focusbetrokkenheid is ingeschakeld, drukt de gebruiker op A/Select om het besturingselement te 'betrekken', communiceert met het besturingselement en drukt vervolgens op B om 'los te schakelen'.
Muismodus
Voor app-ervaringen waarbij XY-focusnavigatie niet praktisch is (zoals kaarten of teken-apps), schakelt u de muismodus in. Hierdoor kunnen gebruikers vrij navigeren met een gamepad, vergelijkbaar met het gebruik van een muis.
Opmerking
UWP heeft voor dit scenario een appbrede Application.RequiresPointerMode eigenschap beschikbaar gesteld.
Microsoft.UI.Xaml.Application in WinUI 3 heeft geen equivalente eigenschap, dus stel RequiresPointer in op elke Page.
Als u de muismodus voor een specifieke pagina wilt inschakelen, stelt u RequiresPointer in op de Page:
<Page RequiresPointer="WhenEngaged">
<!-- Page content -->
</Page>
CommandBar en ContextFlyout
Gebruik ContextFlyout dit om contextmenu's toegankelijk te maken via de menuknop op gamepad:
<GridView>
<GridView.ContextFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="Open"/>
<MenuFlyoutItem Text="Delete"/>
</MenuFlyout>
</GridView.ContextFlyout>
</GridView>
Aanbevolen procedures
- Test uw app met ervaringen van 2 voet (desktop) en 10 voet (TV).
- Zorg ervoor dat alle functionaliteit alleen toegankelijk is met navigatie via D-pad.
- Gebruik
XYFocusKeyboardNavigationop containers om directionele navigatie in te schakelen. - Plaats de belangrijkste inhoud en besturingselementen boven of aan het begin van uw indeling.
- Vertrouw niet op knoppen die uniek zijn voor één invoerapparaat voor kritieke interacties.
Verwante artikelen
Windows developer