Gamepad ve uzaktan kumanda etkileşimleri

Windows Uygulama SDK'sı uygulamanızda fare, klavye ve dokunmaya ek olarak oyun kumandası ve uzaktan kumanda girişiyle de sorunsuz çalışan etkileşim deneyimleri oluşturun.

Genel Bakış

Gamepad ve uzaktan kumanda, Xbox 3 metrelik deneyimin birincil giriş cihazlarıdır. Windows uygulamanız bu giriş türleri ve geleneksel bilgisayar giriş türleri aracılığıyla kullanılabilir ve erişilebilir olmalıdır.

10 fitlik deneyime yönelik genel tasarım yönergeleri için Xbox ve TV için Tasarlama bölümüne bakın.

Anahtar API'leri

Oyun kumandası ve uzaktan kumanda düğmeleri

Aşağıdaki tabloda donanım düğmeleri ve bunları hangi giriş cihazının desteklediği listelemektedir.

Button Oyun kumandası Uzaktan denetim
A/Seç Yes Yes
B/Geri Yes Yes
D-pad Yes Yes
Menü Yes Yes
View Yes Yes
X ve Y Yes Hayı
Sol/sağ çubuk Yes Hayı
Sol/sağ tetikleyiciler Yes Hayı
Sol/sağ tamponlar Yes Hayı

Yerleşik giriş eşlemesi

Windows klavye girişini otomatik olarak oyun çubuğuna ve uzaktan kumandaya eşler:

Keyboard Oyun kolu/uzaktan kumanda
Ok tuşları D-pad (oyun çubuğunda da sol çubuk)
Ara Çubuğu A/Seç düğmesi
Giriniz A/Seç düğmesi
Kaçmak B tuşu/Geri düğmesi

XY odakla gezinme

XY odak gezintisi, kullanıcıların D tuş takımını veya sol çubuğu kullanarak uygulamanızın kullanıcı arabiriminde dört yönde (yukarı, aşağı, sol, sağ) gezinmesini sağlar.

XY gezintisini etkinleştirme

XY odak gezintisi XAML çerçevesinde yerleşiktir. Bir kapsayıcıyı etkinleştirmek için kapsayıcı üzerinde XYFocusKeyboardNavigation ayarlayın:

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

Yön gezintisini geçersiz kıl

XYFocusUpVarsayılan gezinti davranışını geçersiz kılmak için , XYFocusDown, XYFocusLeftve XYFocusRight özelliklerini kullanın:

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

Odak görseli

Odak görseli, şu anda odaklanmış kullanıcı arabirimi öğesini vurgulayan bir kenarlıktır. Kullanıcıların oyun yüzeyi veya uzaktan denetim ile gezinmesine yardımcı olmak için yerleşik odak görselini kullanın.

WinUI 3'te, üzerinde özellikleri ayarlayarak odak görselini FrameworkElementözelleştirin:

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

Odak etkileşimi

Odaklanma etkileşimi, kullanıcının odaklanmış bir denetimle etkileşime geçmek için A/Select düğmesine basmasını gerektirir. Bu, D-pad ile gezinirken yanlışlıkla etkinleştirmeyi önler.

Bu davranıştan yararlanan denetimlerde IsFocusEngagementEnabled ayarlayın:

<Slider IsFocusEngagementEnabled="True"/>

Odak etkileşimi etkinleştirildiğinde, kullanıcı denetimi "devreye almak" için A/Select tuşlarına basar, bu denetimle etkileşim kurar ve ardından B tuşuna basarak "devre dışı bırakılır".

Fare modu

XY odak gezintisi pratik olmayan (haritalar veya çizim uygulamaları gibi) uygulama deneyimleri için fare modunu etkinleştirin. Bu, kullanıcıların fare kullanımına benzer bir oyun yüzeyiyle serbestçe gezinmesine olanak tanır.

Uyarı

UWP, bu senaryo için uygulama genelini kapsayan Application.RequiresPointerMode özelliğini kullanıma sundu. Microsoft.UI.Xaml.Application WinUI 3'te eşdeğer bir özellik yoktur; bu nedenle bunun yerine RequiresPointer öğesini her bir Page üzerinde ayarlayın.

Belirli bir sayfada fare modunu etkinleştirmek için üzerinde RequiresPointerayarlayınPage:

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

CommandBar ve ContextFlyout

Oyun çubuğundaki Menü düğmesi aracılığıyla erişilebilen bağlam menüleri sağlamak için kullanın ContextFlyout :

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

Önerilen yöntemler

  • Uygulamanızı hem 6 metrelik (masaüstü) hem de 3 metrelik (TV) deneyimlerle test edin.
  • Tek başına D-pad gezintisi ile tüm işlevlerin erişilebilir olduğundan emin olun.
  • Yönlü gezintiyi etkinleştirmek için kapsayıcılarda XYFocusKeyboardNavigation kullanın.
  • En önemli içeriği ve denetimleri düzeninizin en üstüne veya başına yerleştirin.
  • Kritik etkileşimler için tek bir giriş cihazına özgü düğmelere güvenmeyin.