Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Twórz środowiska interakcji w aplikacji Zestaw SDK do aplikacji systemu Windows, które działają dobrze z gamepadem i wejściem zdalnego sterowania, oprócz myszy, klawiatury i dotyku.
Przegląd
Gamepad i pilot zdalnego sterowania są podstawowymi urządzeniami wejściowymi w interfejsie Xbox 10-foot. Aplikacja Windows powinna być użyteczna i dostępna za pośrednictwem tych typów danych wejściowych, a także tradycyjnych typów danych wejściowych komputera.
Zobacz Projektowanie dla konsol Xbox i telewizorów, aby uzyskać ogólne wskazówki projektowe dotyczące środowiska 10-foot.
Kluczowe interfejsy API
Gamepad i przyciski zdalnego sterowania
W poniższej tabeli wymieniono przyciski sprzętowe i urządzenia wejściowe, które je obsługuje.
| Button | Kontroler | Zdalne sterowanie |
|---|---|---|
| A/Wybierz | Tak | Tak |
| B/Wstecz | Tak | Tak |
| D-pad | Tak | Tak |
| Menu | Tak | Tak |
| View | Tak | Tak |
| X i Y | Tak | Nie. |
| Lewy/prawy kij | Tak | Nie. |
| Lewy/prawy przycisk | Tak | Nie. |
| Zderzaki z lewej/prawej | Tak | Nie. |
Wbudowane mapowanie danych wejściowych
Windows automatycznie mapuje dane wejściowe klawiatury na gamepad i zdalne sterowanie:
| Keyboard | Gamepad/remote |
|---|---|
| klawisze strzałek | D-pad (również lewy kij na gamepad) |
| Spacja | Przycisk A/Select |
| Wejść | Przycisk A/Select |
| Ucieczka | Przycisk B lub Wstecz |
Nawigacja fokusem XY
Funkcja nawigacji fokusu XY umożliwia użytkownikom poruszanie się po interfejsie użytkownika aplikacji w czterech kierunkach (w górę, w dół, w lewo i w prawo) za pomocą D-pada lub lewego drążka.
Włączanie nawigacji XY
Nawigacja fokusu XY jest wbudowana w strukturę XAML. Ustaw XYFocusKeyboardNavigation dla kontenera, aby go włączyć:
<StackPanel XYFocusKeyboardNavigation="Enabled">
<Button Content="Button 1"/>
<Button Content="Button 2"/>
<Button Content="Button 3"/>
</StackPanel>
Zastąpienie nawigacji kierunkowej
Użyj właściwości XYFocusUp, XYFocusDown, XYFocusLeft i XYFocusRight, aby zastąpić domyślne działanie nawigacji:
<Button Content="Button 1"
XYFocusRight="{x:Bind Button2}"/>
<Button x:Name="Button2" Content="Button 2"
XYFocusLeft="{x:Bind Button1}"/>
Wizualizacja fokusu
Wizualizacja fokusu to obramowanie, które wyróżnia obecnie skoncentrowany element interfejsu użytkownika. Użyj wbudowanej wizualizacji fokusu, aby ułatwić użytkownikom nawigację za pomocą gamepadu lub zdalnego sterowania.
W programie WinUI 3 dostosuj wizualizację fokusu, ustawiając właściwości na :FrameworkElement
<Button Content="My Button"
FocusVisualPrimaryBrush="Red"
FocusVisualPrimaryThickness="2"
FocusVisualSecondaryBrush="Yellow"
FocusVisualSecondaryThickness="1"/>
Skupienie na zaangażowaniu
Zaangażowanie fokusu wymaga od użytkownika naciśnięcia przycisku A/Select w celu interakcji z fokusową kontrolką. Zapobiega to przypadkowej aktywacji podczas nawigowania za pomocą konsoli D.
Ustaw wartość IsFocusEngagementEnabled dla kontrolek, dla których to zachowanie jest korzystne:
<Slider IsFocusEngagementEnabled="True"/>
Gdy włączony jest tryb przechwycenia fokusu, użytkownik naciska przycisk A/Select, aby „uaktywnić” kontrolkę, korzysta z niej, a następnie naciska przycisk B, aby ją „wyłączyć”.
Tryb pracy myszy
W przypadku środowisk aplikacji, w których nawigacja fokusu XY nie jest praktyczna (np. mapy lub aplikacje do rysowania), włącz tryb myszy. Dzięki temu użytkownicy mogą swobodnie poruszać się za pomocą gamepadu, podobnie jak przy użyciu myszy.
Uwaga / Notatka
Platforma UWP udostępniała w tym scenariuszu właściwość dla całej aplikacji Application.RequiresPointerMode.
Microsoft.UI.Xaml.Application W WinUI 3 nie ma równoważnej właściwości, więc zamiast tego ustaw RequiresPointer dla każdego Page.
Aby włączyć tryb myszy dla określonej strony, ustaw wartość RequiresPointer na :Page
<Page RequiresPointer="WhenEngaged">
<!-- Page content -->
</Page>
CommandBar i ContextFlyout
Użyj elementu ContextFlyout, aby udostępnić menu kontekstowe dostępne za pomocą przycisku Menu na kontrolerze:
<GridView>
<GridView.ContextFlyout>
<MenuFlyout>
<MenuFlyoutItem Text="Open"/>
<MenuFlyoutItem Text="Delete"/>
</MenuFlyout>
</GridView.ContextFlyout>
</GridView>
Najlepsze praktyki
- Przetestuj aplikację zarówno w środowisku 2 stóp (komputery stacjonarne), jak i 10 stóp (telewizory).
- Upewnij się, że wszystkie funkcje są dostępne tylko za pomocą nawigacji W-pad.
- Użyj elementu
XYFocusKeyboardNavigationw kontenerach, aby włączyć nawigację kierunkową. - Umieść najważniejszą zawartość i kontrolki u góry lub na początku układu.
- Nie należy polegać na przyciskach unikatowych dla jednego urządzenia wejściowego w przypadku interakcji krytycznych.
Powiązane artykuły
- Projektowanie dla Xboxa i telewizora
- Interakcje z klawiaturą
- Nawigacja z fokusem
- XInput (obsługa wejścia kontrolera do gier) — niskopoziomowy interfejs API do obsługi wejścia z kontrolera Xbox, w tym wibracji, strefy martwej drążka analogowego i sprzężenia zwrotnego spustów
- Windows.Gaming.Input — interfejs API WinRT do obsługi danych wejściowych z kontrolera, kierownicy wyścigowej i drążka sterowego
- Zestaw deweloperski firmy Microsoft do tworzenia gier (GDK) — pełna platforma programistyczna dla komputerów PC i Xbox