Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
82 Kapitel 4 Programmoberflächenentwicklung für Multitouch-Technologien<br />
bestimmtes Ereignis eintritt. DataTrigger <strong>und</strong> PropertyTrigger sind immer Teile<br />
eines Templates. EventTrigger müssen nicht Teil eines Styles oder Templates sein,<br />
dies ist aber die gängige Praxis [LL07].<br />
Resources<br />
Alle von FrameworkElement abgeleiteten Klassen haben die Resources Eigenschaft,<br />
in der nicht visuelle Elemente wie z.B. Styles <strong>und</strong> Templates definiert werden können.<br />
Dieses Element <strong>und</strong> all seine visuellen Kind-Elemente können auf die Ressourcen<br />
zugreifen.<br />
Databinding<br />
Databinding ist eine Technik, die es erlaubt, DependencyProperties an Datenquellen<br />
zu binden, um ihren Wert daraus zu ermitteln. Dies ist eine wichtige<br />
Technik, um die Darstellung von den Daten <strong>und</strong> der Logik zu trennen. Damit ist<br />
es möglich, GUI Elemente für spezielle Daten in XAML zu definieren, ohne dabei<br />
auf klassische Programmierung zurückgreifen zu müssen. Als Datenquellen können<br />
dabei im Prinzip beliebige CLR-Objekte benutzt werden. Allerdings müssen eine<br />
Reihe von Interfaces implementiert werden, wenn das Binding in beide Richtungen<br />
funktionieren oder das Ziel bei Veränderungen benachrichtigt werden soll. Insbesondere<br />
DependencyProperties (oft von z. B. anderen Elementen in der GUI) eignen sich gut,<br />
da sie alle Implementierungen dafür schon bereitstellen. Auch XML-Dokumente sind als<br />
Quelle beliebt. Diese beiden Typen können in XAML direkt eingeb<strong>und</strong>en werden. Die<br />
Klasse FrameworkElement definiert die Eigenschaft DataContext, die im Normalfall<br />
das CLR-Objekt enthält, das für das Binding benutzt werden soll.<br />
Behavior, Trigger <strong>und</strong> Action Konzept<br />
Die Konzepte der Behaviors, Trigger <strong>und</strong> Actions wurden erstmalig in Silverlight 3<br />
eingeführt <strong>und</strong> danach auch zu WPF portiert. Im Gr<strong>und</strong>e genommen handelt es sich bei<br />
den Konzepten um WPF Erweiterungen. Um diese Erweiterungen nutzen zu können,<br />
muss man die DLL Microsoft.Expression.Interactivity.dll in sein Projekt einbinden.<br />
Nach Einbinden dieser DLL bekommt jedes UIElement die Attached Dependency<br />
Properties Interaction.Triggers <strong>und</strong> Interaction.Behavior.<br />
Eine Action ist eine Klasse, die von der generischen Klasse TargetedTriggerAction<br />
abgeleitet wird, wobei das T den Typ angibt, auf welche Klasse die Action angewendet<br />
werden kann. Eine Action ist im Prinzip eine Abstraktion einer Handlung <strong>und</strong> enthält<br />
eine Methode Invoke, welche diese Handlung beschreibt.<br />
Ein Trigger ist eine Klasse, die von der generischen Klasse TriggerBase abgeleitet<br />
wird, wobei das T den Typ angibt, auf welche Klasse der Trigger angewendet werden<br />
kann (z. B. Button). Jeder Trigger hat eine Property AssociatedObject, in welcher