Grundsätzlich möchte ich eine Tastenkombination erstellen, die innerhalb des Bereichs eines Fensters gültig ist, und nicht nur aktiviert, wenn der Fokus innerhalb des Steuerelements liegt, das es bindet.Befehlsrouting für Tastaturkürzel
näher ....
Ich habe ein Fenster, das 3 steuert hat:
- eine Symbolleiste
- eine Textbox
- ein
Custom Control
Meine benutzerdefinierte Steuerung kann CmdA
verarbeiten. Wenn ich die App starte und auf mein benutzerdefiniertes Steuerelement klicke, ist CmdA
aktiviert und funktioniert einwandfrei. Auch Strg + T bewirkt, dass der Befehl ausgelöst wird. Wenn Sie das Textfeld auswählen, wird mein benutzerdefinierter Befehl CmdA
deaktiviert.
Ich kann dies korrigieren, indem Sie das Befehlsziel für CmdA
's-Schaltfläche festlegen. Wenn ich nun die textBox anwähle, ist CmdA
immer noch aktiviert.
Aber die Tastenkombination Ctrl + T tut nichts.
Gibt es eine einfache Möglichkeit, den Umfang der Tastaturkürzel zu ändern? Oder muss ich den Tastendruck irgendwo tiefer abtasten und herausfinden, auf welchen Befehl es sich bezieht und es selbst route (wenn ja, gibt es dafür einen Rahmen?)
Dank H.B, aber dies würde den „neuen“ Befehl an den „CommandBinding_Executed“ -Funktion bindet im Code des Fensters implmented hinter. Allerdings muss die Benutzersteuerung damit umgehen. Dies ist eher ein Problem, da das Benutzersteuerelement dynamisch erstellt wird und ich nicht weiß, welche von etwa 100 benutzerdefinierten Befehlen es verarbeiten kann. – Sprotty