Nell'applicazione WPF sto cercando di associare un comando per avviare una forma di strumento della calcolatrice in qualsiasi punto dell'applicazione utilizzando i tasti di scelta rapida, ho creato un comando ma non ho ottenuto come mappare comandi e tasti di scelta rapida per creare tasti di scelta rapida universali nella mia applicazione. Grazie in anticipo.Tasti di scelta rapida del livello applicazione in WPF
risposta
È possibile farlo in XAML - vedere l'esempio nella documentazione per la classe KeyBinding:
<Window.InputBindings>
<KeyBinding Command="ApplicationCommands.Open"
Gesture="CTRL+R" />
</Window.InputBindings>
Aggiornamento: Sembra che non si può effettivamente associare una combinazione di tasti per un ViewModel utilizzando solo XAML se' usando MVVM: vedi qui Keybinding a RelayCommand.
Il CommandManager desidera utilizzare il controllo focalizzato come punto di partenza per il routing di tutti i collegamenti di input.
Ho scritto un comportamento che consente di associare facilmente i tasti di scelta rapida globali per qualsiasi controllo utilizzando RoutedCommand (standard WPF) e ICommand (stile MVVM).
Salve, il collegamento per il download non funziona. Potresti aggiornare questo con il link di lavoro? – Elangesh
In WPF, al fine di utilizzare le scorciatoie è necessario concentrarsi rispettivo controllore. Tuttavia con InputManager puoi acquisire tutti i tipi di input della tua applicazione. Qui non è necessario concentrarsi sul rispettivo controller.
Per prima cosa devi iscrivere l'evento.
InputManager.Current.PreProcessInput -= Current_PreProcessInput;
InputManager.Current.PreProcessInput += Current_PreProcessInput;
Poi,
private void Current_PreProcessInput(object sender, PreProcessInputEventArgs args)
{
try
{
if (args != null && args.StagingItem != null && args.StagingItem.Input != null)
{
InputEventArgs inputEvent = args.StagingItem.Input;
if (inputEvent is KeyboardEventArgs)
{
KeyboardEventArgs k = inputEvent as KeyboardEventArgs;
RoutedEvent r = k.RoutedEvent;
KeyEventArgs keyEvent = k as KeyEventArgs;
if (r == Keyboard.KeyDownEvent)
{
}
if (r == Keyboard.KeyUpEvent)
{
}
}
}
}
catch (Exception ex)
{
}
}
come non è possibile filtrare tutte le cose indesiderate e ottenere l'ingresso desiderato. Poiché si tratta di un'applicazione di acquisizione rapida, ho preso solo l'evento KeyDown e KeyUp.
È inoltre possibile ottenere tutti i dettagli del tasto premuto
keyEvent.Key.ToString()
- 1. Tasti di scelta rapida in WPF
- 2. Tasti di scelta rapida in iOS?
- 3. tasti di scelta rapida globali in Java
- 4. Tasti di scelta rapida nell'applicazione Web
- 5. Tasti di scelta rapida per suggerimenti
- 6. Tasti di scelta rapida nelle applicazioni web
- 7. Tasti di scelta rapida per iPhone/iPad?
- 8. Tasti di scelta rapida del tasto di ricerca
- 9. Tasti di scelta rapida per comandi git
- 10. Tasti di scelta rapida per il controllo del webbrowser
- 11. Tasti di scelta rapida per blocchi di commento/* ... */in Xcode
- 12. Tasti di scelta rapida globali in WPF che funzionano da ogni finestra
- 13. Disabilita i tasti di scelta rapida IE nei controlli WebBrowser
- 14. Tasti di scelta rapida globali in un'applicazione Qt multipiattaforma
- 15. onKeyDown in un servizio? (Tasti di scelta rapida globali)
- 16. Tasti di scelta rapida in Microsoft Lync 2016
- 17. Cambia tasti di scelta rapida in RAD Studio 2010
- 18. Tasti di scelta rapida per posizionare tasktags in Eclipse
- 19. I tasti di scelta rapida Eclipse non funzionano in XFCE
- 20. Storyboard Zoom In/Out Tasti di scelta rapida
- 21. Tasti di scelta rapida non funzionanti in Visual Studio 2012
- 22. Sottomenu WPF per menu di scelta rapida
- 23. XCode Cronologia (indietro/avanti) Tasti di scelta rapida?
- 24. Tasti di scelta rapida per passare da Windows alla stessa applicazione in Windows 7
- 25. tasti di scelta rapida di Internet Explorer Disabilita
- 26. Come personalizzare i tasti di scelta rapida FoxitReader
- 27. Tasti di scelta rapida di Visual Studio 2010
- 28. Come implementare i tasti di scelta rapida simili a Gmail
- 29. Tasti di scelta rapida della sequenza per il menu
- 30. Menu di scelta rapida WPF in Caliburn Micro
Vuoi dire XAML, piuttosto che MXML? Penso che MXML sia per Flex. – Andy
Oops, si lo faccio! Troppe tecnologie nella mia testa! Risolto, grazie. – Grokys