CommandBinding Ctrl + Barra spaziatrice
-
05-07-2019 - |
Domanda
Gestisco i comandi all'interno di una classe RoutedCommand che implementa RoutedUICommand. Questo mi aiuterebbe a bloccare o sovrascrivere un comando controllandone CanExecute ed Execute se necessario. Posso ignorare EditingCommand, ApplicationCommand, ecc. Uno dei comandi che non riesco nemmeno a gestire è Ctr + barra spaziatrice. È un MediaCommand o altri tipi che non riesco a trovare? Immagino che sia stato gestito da qualche altra parte, ed è per questo che non riesco a controllarlo.
Soluzione
Puoi creare il tuo comando personalizzato oppure puoi semplicemente aggiungere un nuovo gesto per un comando predefinito, ad esempio:
public Window1()
{
InitializeComponent();
ApplicationCommands.Find.InputGestures.Add(new KeyGesture(Key.Space, ModifierKeys.Control));
CommandBinding commandBinding = new CommandBinding(ApplicationCommands.Find, myCommandHandler);
this.CommandBindings.Add(commandBinding);
}
private void myCommandHandler(object sender, ExecutedRoutedEventArgs args)
{
MessageBox.Show("Command invoked!");
}
Altri suggerimenti
Non ho molta esperienza nell'uso dei comandi WPF, ma prova a creare i tuoi comandi personalizzati per Ctrl e Barra spaziatrice.
Vedi questo tutorial: http: // www .switchonthecode.com / tutorial / WPF dimostrativi-comando-binding-e-custom-comandi