19.01.2015 Aufrufe

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!