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.

È stato utile?

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

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top