Voglio interpretare il tasto Invio come tasto Tab in tutta la mia applicazione WPF, cioè ovunque nella mia applicazione quando l'utente preme Invio Voglio mettere a fuoco il prossimo controllo focalizzabile, tranne quando il pulsante è focalizzato. C'è un modo per farlo nel circolo di vita delle applicazioni? Qualcuno può darmi un esempio?
Grazie mille!
Interpreta immetti come scheda WPF
risposta
È possibile utilizzare il mio codice EnterKeyTraversal attached property se lo si desidera. Aggiungerlo al contenitore di livello superiore su una finestra WPF e tutto all'interno tratterà entrare come scheda:
<StackPanel my:EnterKeyTraversal.IsEnabled="True">
...
</StackPanel>
Il problema che sto affrontando è che quando il fuoco si accende un pulsante, voglio eseguire il comando e andare avanti il indice tab successivo. È possibile farlo?? –
woodyiii, c'è una funzione nella UIElement
chiamato PredictFocus()
, che con il suo nome conosce la sua funzione, allora si può controlla se quell'elemento è abilitato o meno in modo da spostare il focus su di esso o no ...
Ho risolto il problema di woodyiii aggiungendo un oggetto FrameworkElement.Tag (il cui valore è IgnoreEnterKeyTraversal) a determinati elementi (pulsanti, caselle combinate, o qualcosa che voglio ignorare l'attraversamento del tasto enter) nel mio XAML. Ho quindi cercato questo tag & nella proprietà allegata. In questo modo:
if (e.Key == Key.Enter)
{
if (ue.Tag != null && ue.Tag.ToString() == "IgnoreEnterKeyTraversal")
{
//ignore
}
else
{
e.Handled = true;
ue.MoveFocus(new TraversalRequest(FocusNavigationDirection.Next));
}
}
Assicuratevi di farlo nell'evento 'KeyDown' e non in' PreviewKeyDown', altrimenti il caret non si muoverà. Inoltre, non si specifica cosa 'ue' è, ma almeno per me deve essere' e.Source'. – Conrad
Questo va bene. Funziona su TextBox se ha Tag = "IgnoreEnterKeyTraversal" ma voglio la stessa cosa su ComboBox con IsEditable = "true". In quello scenario il tuo trucco non funziona. Puoi dirmi come posso farlo ?? – Vishal
di cambiarlo in tutto il progetto è necessario fare questo
In App.xaml.cs:
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)); } }
Compile. E fatto. Ora puoi usare la scheda "inserisci come". Nota: Questo lavoro per gli elementi nella griglia
- 1. CMake interpreta stringa come variabile
- 2. SLF4J varargs interpreta prima stringa come marker
- 3. Immetti sulla stessa riga dell'output in C#?
- 4. Come creare un controllo scheda WPF come elenco chevron?
- 5. javascript immetti evento non funziona su google
- 6. Interpreta std :: string come std :: vector di char_type?
- 7. Chrome interpreta l'ora ISO senza Z come UTC; C# problema
- 8. Interpreta l'output di dtruss come "psynch_cvwait (...) = -1 Err # 316"
- 9. Espressioni lambda C++ - Come li interpreta il compilatore?
- 10. bash: interpreta la variabile di stringa come nome file/percorso
- 11. C'è un evento modificato nella scheda selezionata nel controllo scheda WPF standard
- 12. WPF TabControl prendere dimensioni del più grande scheda
- 13. WPF TabControl: selezionare una scheda diversa quando TabItem Visibility cambia
- 14. Come assicurarsi che il mio WPF TabControl abbia sempre una scheda selezionata quando contiene almeno una scheda?
- 15. Come modificare la scheda selezionata in Clic pulsante in WPF TabControl con pulsanti nell'intestazione
- 16. Come modificare la scheda da TabControl in WPF senza violare il pattern MVVM
- 17. Come sapere se una scheda grafica fornisce il rendering hardware per wpf
- 18. Come stile ActionBar, scheda sfondo nella scheda selezionata
- 19. invia richiesta come jsonp, interpreta la risposta come testo, usando jQuery 1.5
- 20. WPF TabControl Databinding
- 21. TabItem Binding WPF
- 22. JQuery scheda "galleggiante" come GetSatisfaction
- 23. Outlook 2010 AddIn nella scheda Appunto scheda
- 24. WPF TabItem Header Images
- 25. Resharper: frammenti di codice con scheda + scheda
- 26. Bootstrap angolare - Scheda predefinita attiva (scheda dinamica)
- 27. Angularjs scheda di avvio scheda tabset
- 28. WPF: TabControl & DataTemplates
- 29. Come si interpreta al thread Java che è RUNNABLE ma senza traccia dello stack?
- 30. qMake: come esattamente qmake interpreta la sintassi "CONFIG (debug, debug | release)"
BabySmash da Scott Hanselman utilizza alcuni tastiera sovrascrive – bendewey