2009-04-01 9 views
1

Ich arbeite eine WPF-Anwendung, wo ich eine Menüleiste mit Input-Gesten, d. H. Tastatur-Shortcuts verwaltet.WPF Eingabegeste

Für Speichern unter Menüpunkt, habe ich Strg + A gemäß Benutzeranforderung gehalten. Es funktioniert gut, solange der Fokus auf dem Hauptfenster liegt.

Jetzt ist mein Problem, angenommen, die Verwendung hat in einigen Listbox im Fenster navigiert, und wenn er Strg + A drückt, dann wählen Sie alle Funktionen für das Listenfeld und Speichern unter Dialogfeld wird nicht aufgerufen (wie ich habe die Befehlsbindung für diese Eingabegeste gemacht)

Irgendeine Idee, wie ich das vermeiden kann? und ja, ich kann meine Eingabegeste nicht ändern. Es muss Strg + A sein. :)

Dank

Antwort

2

Ich denke, man könnte die Befehlsbindungen auf dem Listenfeld Objekt ändern, um die Bindung für den Befehl zu entfernen. Sehen Sie sich die ListBox.CommandBindings-Liste an.

Sie können Focusable auch auf der ListBox deaktivieren, sodass sie niemals Tastaturbefehle empfängt.

Sie können auch das Eventing-Modell ausprobieren. Sie könnten wahrscheinlich das Keydown abfangen, wenn die Vorschau-Ereignisse aus dem Stamm des logischen Baums "aufsteigen" und dann vom End-Element nach unten weitergegeben werden. Sie können auf dem Weg nach oben oder auf dem Weg zurück nach unten markiert werden.