Enter tuşuna basmak istiyorum Benim WPF uygulamasının tümünde Sekme tuşunu kullan, yani, Kullanıcı bastığımda uygulamamın her yerinde Enter düğmesine odaklanıldığında, bir sonraki odaklanabilir kontrole odaklanmak istiyorum. Uygulama yaşam döngüsünde bunu yapmanın bir yolu var mı? Birisi bana bir örnek verebilir mi?
Çok teşekkürler!
Yorumlama sekmesi olarak girin WPF
cevap
İsterseniz, EnterKeyTraversal attached property kodumu kullanabilirsiniz. WPF penceresinde üst düzey kaba ekleyin ve içindeki her şey sekme olarak girmek görür:
<StackPanel my:EnterKeyTraversal.IsEnabled="True">
...
</StackPanel>
geçersiz kılmaları kullanır sonraki sekme dizini. Bunu yapabilmek mümkün mü?? –
woodyiii, sonra da olabilir, onun işlevini bilmek adıyla PredictFocus()
denilen UIElement
bir işlevi yoktur Bu öğenin etkinleştirilip etkinleştirilmediğini kontrol edin veya odağı hareket ettirmek için değil ...
Bazı elemanlara (düğmeler, combobox'lar) FrameworkElement.Tag (değeri IgnoreEnterKeyTraversal) ekleyerek woodyiii'nin sorununu çözdüm veya XAML'mdeki enter tuşu geçişini yok saymak istediğim bir şey var). Daha sonra ekli özellikte bu etiketi & değeri için aradım. böylece gibi:
if (e.Key == Key.Enter)
{
if (ue.Tag != null && ue.Tag.ToString() == "IgnoreEnterKeyTraversal")
{
//ignore
}
else
{
e.Handled = true;
ue.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
}
Bunu "KeyDown" etkinliğinde yaptığınızdan ve "PreviewKeyDown" uygulamasında yapmadığınızdan emin olun. Ayrıca, 'u' ın ne olduğunu belirtmiyorsunuz ama en azından benim için 'e.Source' olması gerekiyor. – Conrad
Bu iyi. Tag = "IgnoreEnterKeyTraversal" varsa TextBox üzerinde çalışır, ancak aynı şeyi IsEditable = "true" ile ComboBox'ta istiyorum. Bu senaryoda numaranız işe yaramaz. Bana bunu nasıl yapabilirim söyler misin? – Vishal
projenin bütünü değiştirmek için, App.xaml.cs bu
yapmanız gerekir:
protected override void OnStartup(StartupEventArgs e) { EventManager.RegisterClassHandler(typeof(Grid), Grid.PreviewKeyDownEvent, new KeyEventHandler(Grid_PreviewKeyDown)); base.OnStartup(e); } private void Grid_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) { var uie = e.OriginalSource as UIElement; if (e.Key == Key.Enter) { e.Handled = true; uie.MoveFocus( new TraversalRequest( FocusNavigationDirection.Next)); } }
derleme'yi. Ve bitti. Şimdi gir gibi sekmeyi kullanabilirsiniz. Not: kılavuzunda elementler için Bu çalışma Scott Hanselman'ın tarafından
- 1. WPF Şerit Sekmesi Görünüm Tasarımcısı
- 2. Chevron listesi olarak bir WPF sekmesi denetimi nasıl oluşturulur?
- 3. WPF Sekmesi Denetim sekmelerini yan tarafa yerleştirme
- 4. WPF: Merkez Sekmesi XAML kodumda bir TabControl
- 5. URL'de yanlış yorumlama '& not'
- 6. PHP ile SQL'i yorumlama
- 7. Jekyll işaretleme yorumlama
- 8. Kod çözme ve gönderme yorumlama vs Dişli yorumlama
- 9. gcc harita dosyasını yorumlama
- 10. Callgrind verilerini yorumlama
- 11. Android Yorumlama HttpResponse
- 12. Xpath İfadesi Yorumlama
- 13. K-Olumsuz Centroidler Yorumlama
- 14. Bağlantı sekmesi ile bağlantı sekmesi
- 15. Process Explorer'dan GPU bilgilerini yorumlama
- 16. ajax/php yorumlama sistemi çalışmıyor
- 17. knockoutjs onay değil işleme girin anahtarı düzgün bir şekilde girin
- 18. Anahtar Numara Girin
- 19. Özelliğin değerini girin
- 20. Başlık bölümüne girin jQuery
- 21. Girin ve yanıtı kaydedin
- 22. Netbeans'te dikey dosya sekmesi
- 23. Şu anki dili girin C#
- 24. Android Dikey Sekmesi Öğe
- 25. Açılan kutuya bağlı olarak metin kutusuna değer girin
- 26. Ataç: Bir görüntüyü programatik olarak atayın ve adını girin
- 27. C# - Dize Verilerini Sekmelerle Doğru Olarak Nasıl Girin?
- 28. Parlak sekmesi panelleri değiştirirken
- 29. Tam olarak "WPF servisleri" nelerdir?
- 30. WPF kopyalama kontrolleri programatik olarak
BabySmash bazı Klavye i Karşılıklı sorun odağı bir düğmeye geldiğinde, ben komut çalıştırmak ve üzerinde taşımak istediğiniz olmasıdır – bendewey