Implementieren Tastenkombinationen
Derzeit benutze ich onKeyDown
Ereignis und ein if/else
- Anweisung zum erstellen von Tastatur-shortcuts:
if ((Keyboard.Modifiers & ModifierKeys.Shift) == ModifierKeys.Shift && e.Key == Key.Tab) {
} else if (e.Key == Key.Tab) {
} ...
Allerdings, wenn ich schon ein paar mehr Tastenkombinationen, das wird chaotisch.
Gibt es eine bessere Umsetzung?
InformationsquelleAutor Jiew Meng | 2010-08-26
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sollten Sie schauen, Umsetzung
<CommandBindings>
und<InputBindings>
:Ihre
<Button>
wird dann:Den
SettingsCanExecute
Methode legt fest, Wann die Schaltfläche aktiviert und dieSettingsExecuted
Methode wird aufgerufen, wenn der button betätigt wird oder die Tastenkombination geschlagen.Du dann nicht brauchen, die
KeyDown
hf.Gibt es eine vollständige tutorial on-Schalter Auf Der Code.
Mehr Informationen auf CommandBindings und InputBindings finden Sie auf der MSDN-Website.
<CommandBinding Command="Preview" CanExecute ...
bekomme ich eine Fehlermeldung aufCommand="Preview"
nämlich nicht in der "Vorschau". ich bin mit dem RibbonWindow statt Fenster. macht es einen Unterschied? da RibbonWindow erweitert-Fenster?ich bin nicht sicher, ob ich etwas übersehen in der Anleitung. aber ein Blick in den demo-code von John Smith Auf WPF: Verständnis Weitergeleitet Befehle ich glaube, ich brauche zum erstellen einer Eigenschaft für eine Klasse dann verweisen Sie im code... Snipplr-Code Snipplet
InformationsquelleAutor ChrisF
Dokumentieren diese Antwort für andere, denn es gibt eine viel einfachere Möglichkeit, dies zu tun, wird nur selten verwiesen wird, und erfordert keine Berührung des XAML an alle.
Verknüpfung eine Tastenkombination im Fenster-Konstruktor fügen Sie einfach eine neue Tastenbelegung für die InputBindings Sammlung. Als der Befehl, übergeben Sie in Ihrer beliebigen Befehl Klasse, die ICommand. Für die execute-Methode einfach umzusetzen, was Logik, die Sie benötigen. In meinem Beispiel unten, meine WindowCommand Klasse einen Delegierten, dass es ausgeführt wird, Wann immer Sie aufgerufen wird. Wenn ich bauen die neue WindowCommand zu übergeben, mit meiner Bindung, ich geben Sie einfach in meine Initialisierung wird die Methode, die ich will, die WindowCommand zu führen.
Können Sie dieses Muster, um mit Ihrem eigenen schnellen Tastenkombinationen.
Erstellen Sie eine einfache WindowCommand Klasse, die dauert eine Ausführung delegieren, das Feuer aus jeder Methode stellen.
Interessant. Haben Sie eine Referenz? Ich habe noch nie gesehen, dass in drucken vor, aber wenn es stimmt, wäre gut zu wissen. Danke!
Jeder einzelne lernen Beispiel für das MVVM-ich weiß, der erzeugt ein View-Modell. Erzeugt ein Objekt, die View-Modell-in der XAML-Code. Und hält den Code Hinter als barebones wie irgend möglich. Alles, was Sie schreiben code, der sich hinter gebunden ist, dass bestimmte Anzeigen per definition. Und der Willkür der Ansicht ist ein grundlegendes Konzept in MVVM. Auch mein Mathelehrer pflegte zu sagen: "Mathematiker sind faul Autoren - je mehr Sie schreiben, desto mehr können Sie machen Fehler". Ich beantrage, dass die Programmierung vollständig.
InformationsquelleAutor Ayo I