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.

¿Fue útil?

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

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top