Interakce gamepadu a vzdáleného ovládání

Vytvářejte prostředí interakce v aplikaci Windows App SDK, která dobře fungují se vstupem gamepadu a vzdáleného ovládání, a to kromě myši, klávesnice a dotykového ovládání.

Přehled

Gamepad a dálkové ovládání jsou primární vstupní zařízení pro Xbox 10 stop. Aplikace Windows by měla být použitelná a přístupná prostřednictvím těchto vstupních typů a také tradičních typů vstupu počítače.

Obecné pokyny k navrhování pro prostředí na velké obrazovce najdete v tématu Navrhování pro Xbox a TV.

Klíčová rozhraní API

Gamepad a tlačítka dálkového ovládání

Následující tabulka uvádí hardwarová tlačítka a vstupní zařízení je podporuje.

Button Herní ovladač Dálkové ovládání
A/Vybrat Ano Ano
B/Zpět Ano Ano
D-pad Ano Ano
Jídelní lístek Ano Ano
Zobrazit Ano Ano
X a Y Ano Ne
Levá/pravá páčka Ano Ne
Spouště vlevo/vpravo Ano Ne
Levý/pravý bumper Ano Ne

Integrované mapování vstupu

Windows automaticky mapuje vstup klávesnice na gamepad a dálkové ovládání:

Keyboard Herní ovladač/dálkový ovladač
Klávesy se šipkami D-pad (také levá páčka na gamepadu)
Mezerník Tlačítko A/Select
Vstoupit Tlačítko A/Select
Útěk Tlačítko B/Zpět

Navigace fokusu XY

Navigace XY podle zaměření umožňuje uživatelům procházet uživatelské rozhraní aplikace ve čtyřech směrech (nahoru, dolů, doleva, doprava) pomocí směrového ovladače nebo levé páčky.

Povolení navigace XY

Navigace fokusu XY je integrovaná do architektury XAML. Nastavte XYFocusKeyboardNavigation u kontejneru, abyste ho povolili:

<StackPanel XYFocusKeyboardNavigation="Enabled">
    <Button Content="Button 1"/>
    <Button Content="Button 2"/>
    <Button Content="Button 3"/>
</StackPanel>

Přepsat směrovou navigaci

Použijte vlastnosti XYFocusUp, XYFocusDown, XYFocusLeft a XYFocusRight k přepsání výchozího chování navigace:

<Button Content="Button 1"
        XYFocusRight="{x:Bind Button2}"/>
<Button x:Name="Button2" Content="Button 2"
        XYFocusLeft="{x:Bind Button1}"/>

Zaměření na vizuál

Fokus je ohraničení, které zvýrazní aktuálně zaměřený prvek uživatelského rozhraní. Pomocí integrovaného vizuálu fokusu můžete uživatelům pomoct s ovládáním gamepadu nebo vzdáleného ovládání.

Ve WinUI 3 přizpůsobte vizuální indikátor fokusu nastavením vlastností u FrameworkElement:

<Button Content="My Button"
        FocusVisualPrimaryBrush="Red"
        FocusVisualPrimaryThickness="2"
        FocusVisualSecondaryBrush="Yellow"
        FocusVisualSecondaryThickness="1"/>

Zapojení fokusu

Aktivace fokusu vyžaduje, aby uživatel pro interakci se zaměřeným ovládacím prvkem stiskl tlačítko A/Select. Zabráníte tak náhodné aktivaci při navigaci pomocí D-padu.

Nastavte IsFocusEngagementEnabled u ovládacích prvků, které mají prospěch z tohoto chování:

<Slider IsFocusEngagementEnabled="True"/>

Když je aktivní zapojení fokusu, uživatel stiskne klávesu A/Select, aby se ovládací prvek zapojil, interaguje s ním a pak stiskne klávesu B a "odpojí".

Režim myši

Pro prostředí aplikací, ve kterých není navigace fokusu XY praktická (například mapy nebo aplikace kreslení), povolte režim myši. To umožňuje uživatelům volně přecházet pomocí herního panelu, podobně jako pomocí myši.

Poznámka:

UWP pro tento scénář zpřístupňoval vlastnost Application.RequiresPointerMode, která platila pro celou aplikaci. Microsoft.UI.Xaml.Application ve WinUI 3 nemá ekvivalentní vlastnost, takže místo toho nastavte RequiresPointer u každého Page.

Pokud chcete pro konkrétní stránku povolit režim myši, nastavte RequiresPointer na :Page

<Page RequiresPointer="WhenEngaged">
    <!-- Page content -->
</Page>

CommandBar a ContextFlyout

Použijte ContextFlyout k poskytnutí kontextových nabídek přístupných pomocí tlačítka Nabídka na gamepadu:

<GridView>
    <GridView.ContextFlyout>
        <MenuFlyout>
            <MenuFlyoutItem Text="Open"/>
            <MenuFlyoutItem Text="Delete"/>
        </MenuFlyout>
    </GridView.ContextFlyout>
</GridView>

Osvědčené postupy

  • Otestujte svou aplikaci jak v prostředí pro počítač (2-foot), tak i v prostředí pro TV (10-foot).
  • Zajistěte, aby všechny funkce byly přístupné jenom v navigaci na D-padu.
  • Pomocí XYFocusKeyboardNavigation u kontejnerů povolte směrovou navigaci.
  • Umístěte nejdůležitější obsah a ovládací prvky na začátek rozložení.
  • Nespoléhejte na tlačítka jedinečná pro jedno vstupní zařízení pro kritické interakce.