Freigeben über


Toolarchitektur

Benutzer haben viele komplexe Möglichkeiten zum Interagieren mit den Inhalten in einem Designer. Beispielsweise können Benutzer mit der Maus (durch Klicken, Ziehen, Ziehen mit Zusatztasten), mit der Tastatur oder über Menüs mit der Entwurfsoberfläche interagieren. Um Erweiterungen zu ermöglichen, muss in einem Designer eine Basis für die Verarbeitung all dieser Arten von Benutzerinteraktionen bereitgestellt werden. Der WPF Designer für Visual Studio stellt ein flexibles, aber strukturiertes Eingabesystem bereit, das erweiterbar und konsistent ist. Das Benutzermodell für die Toolarchitektur besteht aus Befehlen, Aufgaben und Tools.

Befehle

Ein Befehl ist ein eindeutiger Bezeichner, der ein bestimmtes Verhalten darstellt. Ein Beispiel hierfür ist der Befehl Ausschneiden, der für den Prozess steht, mit dem ein Text oder Objekt ausgeschnitten und der Zwischenablage hinzugefügt wird. Zwar kann sich der Code, der den Befehl implementiert, von Anwendung zu Anwendung (oder sogar innerhalb einer Anwendung) unterscheiden, der Befehl bleibt jedoch konstant. Alle Befehle implementieren die ICommand-Schnittstelle.

Neben dem Befehl selbst gibt es zwei weitere Elemente, die für ein ordnungsgemäßes Funktionieren des Befehls erforderlich sind. Erstens ist für einen Befehl eine Art von Benutzereingabe (bezeichnet als Aktion) erforderlich, die den Befehl auslöst. Beispielweise kann die Tastenkombination STRG+X oder eine Auswahl in einem Menü eine Aktion sein, die einen Befehl auslöst. Zweitens ist für einen Befehl eine Art von Codeimplementierung erforderlich, die beim Aufrufen des Befehls ausgeführt wird.

WPF stellt die integrierte Implementierung der ICommand-Schnittstelle RoutedCommand bereit, die Informationen über Benutzereingaben an die vorgesehenen Befehlshandler übergibt. Der WPF-Designer stellt einen weiteren Befehlstyp mit der Bezeichnung ToolCommand bereit, der die Menge von Informationen über den Zustand des Designers erweitert, die an den EventArgs-Typ des Befehlshandlers übergeben wird.

Aufgaben

Task ist ein Objekt, das eine tatsächliche, möglicherweise im Designer ausgeführte Aufgabe darstellt. Beispielsweise kann das Ziehen eines Elements auf den Designer durch ein Task-Objekt dargestellt werden. Task enthält drei Auflistungen:

  1. Eine Auflistung von Eingabebindungen, mit denen die Arten der von der Aufgabe behandelten Benutzereingaben beschrieben werden. Dies können beispielsweise Bindungen sein, die Tastenkombinationen oder Mausbewegungen darstellen.

  2. Eine Auflistung von Befehlsbindungen, die Implementierungen für standardmäßige WPF-Routingbefehle bereitstellen.

  3. Eine Auflistung von Toolbefehlsbindungen, die Implementierungen für die WPF-Designer-Toolbefehle bereitstellen.

Beispielsweise kann das bereits erwähnte Task-Objekt, das das Ziehen eines Elements auf den Designer darstellt, Befehle für das Drücken einer Maustaste (MouseDown), das Bewegen der Maus (MouseMove) und das Loslassen einer Maustaste (MouseUp) enthalten. Außerdem kann das Task-Objekt auch Eingabebindungen enthalten, die Eingabeaktionen an jeden dieser Befehle binden.

Tools

Tool ist eine Klasse zum Verarbeiten von Benutzereingaben. Alle Benutzereingaben erreichen den Designer als ein oder mehrere Eingabeereignisse, die Daten enthalten, welche die verwendete Eingabeaktion und andere Informationen über den Zustand des Designers darstellen. Das Eingabeereignis wird an das zurzeit aktive Tool-Objekt weitergeleitet, das die Eingabedaten in Eingabebindungen konvertiert. Der Befehl in der Bindung wird ausgeführt, wenn eine Bindung für die angegebene Eingabeaktion gefunden wird.

Das Tool-Objekt wird verwendet, um den globalen Modus des Designers darzustellen. Dieser Modus wird beispielsweise aktiviert, wenn der Benutzer Komponenten auf der Benutzeroberfläche auswählt, da das aktuelle Tool Aufgaben enthält, mit denen die Auflistungen von Eingabebindungen und Befehlen bereitgestellt werden. Durch diese Auflistungen werden bestimmte Eingabeaktionen an bestimmte Befehle gebunden, die die entsprechenden Aufgaben ermöglichen. Wenn der Benutzer ein neues Steuerelement erstellt, wird ein anderes Tool mit anderen Bindungen aktiv, das dem Benutzer die Verwendung der gleichen Aktionen ermöglicht, diese jedoch an andere Befehle bindet.

Siehe auch

Referenz

Tool

Task

ToolCommand

ICommand

Konzepte

Benutzereingabe und Präsentationsarchitektur

Erweiterbare Architektur des WPF-Designers