CommandBinding Ctrl + barra espaciadora
-
05-07-2019 - |
Pregunta
Yo manejo los comandos dentro de una clase RoutedCommand que implementa RoutedUICommand. Esto me ayudaría a bloquear o anular un comando al verificar su CanExecute y Ejecutar si es necesario. Puedo anular EditingCommand, ApplicationCommand, etc. Uno de los comandos que ni siquiera puedo manejar es Ctr + Barra espaciadora. ¿Es un MediaCommand o algunos otros tipos que no puedo encontrar? Supongo que se ha manejado en otro lugar, y es por eso que no puedo controlarlo.
Solución
Puede crear su propio comando personalizado o simplemente puede agregar un nuevo gesto para un comando predefinido, por ejemplo:
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!");
}
Otros consejos
No tengo mucha experiencia con los comandos de WPF, pero intenta crear tus propios comandos personalizados para Ctrl y la barra espaciadora.
Vea este tutorial: http: // www .switchonthecode.com / tutorials / wpf-tutorial-command-bindings-and-custom-command