Frage

Ich behandle Befehle in einer RoutedCommand Klasse, die RoutedUICommand implementiert. Dies würde helfen, mir einen Befehl zu blockieren oder zu überschreiben, indem ihre CanExecute Überprüfung und ausführen, wenn nötig. Ich kann außer Kraft setzen EditingCommand, ApplicationCommand, etc .. Einer der Befehl, den ich nicht einmal verarbeiten kann Strg + Leertaste ist. Ist es ein MediaCommand oder einige andere Arten, die ich nicht finden kann? Ich denke, es irgendwo anders behandelt worden ist, und das ist, warum ich es nicht kontrollieren kann.

War es hilfreich?

Lösung

Sie können Ihren eigenen benutzerdefinierten Befehl erstellen oder Sie können einfach neue Geste für vordefinierte Befehl hinzufügen, z.

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!");
    }

Andere Tipps

Ich habe nicht viel Erfahrung mit WPF-Befehle, aber versuchen Sie Ihre eigenen Befehle für Ctrl und Spacebar zu schaffen.

Sehen Sie dieses Tutorial: http: // www .switchonthecode.com / tutorials / wpf-Tutorial-Befehl-Bindings-and-custom-Befehle

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top