Expression Blend 3 – Mehr Überblick behalten mit Behaviors

by Gregor Biswanger 1. Oktober 2009 05:28

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

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

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

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

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

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.
kick it on dotnet-kicks.de

Kommentare

Powered by BlogEngine.NET 1.4.5.0
Theme by Extensive SEO

Über den Autor

Gregor Biswanger

Microsoft MVP für Client App Dev
XING

Gregor Biswanger (Microsoft MVP für Client App Dev) ist freier Consultant, Trainer, Autor und Speaker.


Seine Schwerpunkte liegen im Bereich der .NET-Architektur, agilen Prozessen und XAML. Er veröffentlichte vor kurzem seine DVD´s mit Video-Trainings zum Thema „Meine erste Windows 8 App“, „Windows Store Apps mit XAML und C#“ und „WPF 4.5 und Silverlight 5“ bei Addison-Wesley von video2brain.


Biswanger ist auch im Auftrag von Intel GmbH als Technologieberater für die Intel Developer Zone aktiv und ist Leader bei der Ingolstädter .NET Developers Group (INdotNET). 

 

Video über mich:
http://www.youtube.com/watch?v=mx_6SiiLxjk


Basta! 2011 Speaker

CLIPer

MCTS
Windows SharePoint Services 3.0 – Application Development (MCTS)