Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
XYFocusKeyboardNavigationkullanı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.
İlgili makaleler
- Xbox ve TV için Tasarım Yapmak
- Klavye etkileşimleri
- Odakla gezinme
- XInput (oyun kumandası girişi) — Titreşim, parmak çubuğu deadzone ve geri bildirim tetikleme dahil olmak üzere Xbox denetleyici girişi için düşük düzey API
- Windows.Gaming.Input — gamepad, yarış direksiyonu ve uçuş kumandası girdisi için WinRT API
- Microsoft Oyun Geliştirme Seti (GDK) — BILGISAYAR ve Xbox için tam oyun geliştirme platformu
Windows developer