Ab Expression Blend 3 gibt es ein weiteres neues Feature: „Behaviors“. Mit Behaviors können grundlegende UI-Logiken als Snippet verwendet werden. Die Behaviors selbst liegen in eigenen Klassen oder Assemblys und werden von dort aus auf UI-Controls im XAML referenziert, das gibt den Vorteil, das für viele komplexe Anforderungen keine Zeile Code mehr geschrieben werden muss. Nicht nur das, sondern unter Silverlight werden beiläufig viele vermisste Funktionen als Behaviors angeboten. Somit gibt es als Beispiel ein extra Trigger-Behavior, womit Animationen ohne eine Zeile Code in der Code-Behinde-Datei angesteuert werden können.
Bei Expression Blend 3 werden standardmäßig fertige Behaviors je nach Projekttyp zu WPF oder Silverlight angeboten. Diese sind unter den Assets zu finden, siehe Abb.1.1. Weitere zahlreiche Behaviors können von der Expression Gallery heruntergeladen, oder selbstgeschriebene Behaviors für andere zur Verfügung gestellt werden.
Abb.1.1. – Auswahl der Behaviors unter Expression Blend 3.
Behaviors verwenden
Als kleines Beispiel für die Verwendung von Behaviors soll eine Silverlight Anwendung dienen, die bereits aus einer fertige Animation und einem Button besteht. Die Animation lässt den Button einmal im Uhrzeigersinn drehen.
Abb.2.1. – Einfache Animation für einen Button.
Nun soll diese Animation beim Klicken des Buttons gestartet werden, normal müsste dazu bei einer Silverlight Anwendung die Animation in der Code-Behind-Datei starten, was nicht wirklich erwünscht ist. Auch beim verwenden des MVVM-Patterns (siehe Webcast: Silverlight – MVVM), soll die Animation auf keinen Fall vom ViewModel gestartet werden. Denn eine Animation kann man nicht Oberflächenunabhängig Testen und würde demnach keinen Sinn geben. Unter WPF gibt es bereits Trigger, womit ein starten im XAML-Code definiert wird. Dennoch gibt es keine Trigger unter Silverlight. Um dem Problem nachhelfen zu können, soll nun ein Trigger-Behavior von Blend zum Einsatz kommen.
Wenn die Animation und der Button stehen, wird unter Assets bei den Behaviors das ControlStoryboardAction-Behavior mit gedrückter Maustaste auf den Button gezogen.
Abb.2.2. – ControlStoryboadAction für den Button zuweisen
Im Objects and Timeline-Fenster ist nun unter dem Button das zugewiesene Behavior enthalten. Mit einem Klick werden dazu die Properties für weitere Einstellungen angezeigt.
Abb.2.3 – Einstellungen des Behaviors vornehmen.
Nun muss nur noch unter Storyboard die vorhandene Animation ausgewählt werden. Alle anderen Einstellungen wurden bereits automatisch übernommen.
Abb.2.4. – Animation zuweisen.
Das war es auch schon. Die Code-Behind-Datei ist frei und es wurde im XAML-Code ein Trigger definiert. Dem Silverlight Projekt werden zudem bei der Verwendung von vorhandenen Behaviors Expression Blend-Libraries referenziert. Bei Komplexen Animationen, die gegenseitig auf Ihren Status angewiesen sind, wird man wohl auch nicht um die Code-Behind-Datei herumkommen. Noch viel Eleganter und mächtiger ist das selbst schreiben von Behavios.
Wenn ihnen der Artikel gefallen hat oder er für sie hilfreich war, bitten "kicken" sie ihn.
