CommandBinding Ctrl + Espace
-
05-07-2019 - |
Question
Je gère les commandes à l'intérieur d'une classe RoutedCommand qui implémente RoutedUICommand. Cela m'aiderait à bloquer ou à écraser une commande en vérifiant si besoin est CanExecute et Execute. Je peux remplacer EditingCommand, ApplicationCommand, etc. Une des commandes que je ne peux même pas gérer est Ctr + Barre d'espacement. Est-ce un MediaCommand ou un autre type que je ne trouve pas? Je suppose que cela a été traité ailleurs et c'est pourquoi je ne peux pas le contrôler.
La solution
Vous pouvez créer votre propre commande personnalisée ou simplement ajouter un nouveau geste pour une commande prédéfinie, par exemple:
.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!");
}
Autres conseils
Je n'ai pas beaucoup d'expérience dans l'utilisation des commandes WPF, mais essayez de créer vos propres commandes personnalisées pour Ctrl et barre d'espace.
Consultez ce didacticiel: http: // www. .switchonthecode.com / tutorials / wpf-tutorial-commandes-liaisons-et-commandes-personnalisées