Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Projektgruppe Visual Analytics - Medieninformatik und Multimedia ...
Erfolgreiche ePaper selbst erstellen
Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.
4.2 Einführung in die Windows Presentation Fo<strong>und</strong>ation 81<br />
Der in vorletzte Schritt der Abbildung 4.4 wird oft als <strong>Visual</strong> Inheritance oder Property<br />
Inheritance bezeichnet, um ihn von der klassischen Vererbung der Objektorientierung<br />
abzugrenzen. Hierbei wird ermittelt, ob der Wert vielleicht in einem der Vorfahren im<br />
<strong>Visual</strong>Tree gesetzt wurde.<br />
Genauso wie Attached Routed Events gibt es auch Attached Dependency Properties.<br />
Sie können auf Elemente gesetzt werden, die diese Eigenschaften nicht definieren. So<br />
kann eine Canvas.LeftEigenschaft zu einem beliebigen Control zugewiesen werden,<br />
obwohl Control diese Eigenschaft nicht definiert.<br />
Styles<br />
Ein Style definiert eine Reihe von Settern für Eigenschaften, damit sie einheitlich auf<br />
mehrere Widgets angewendet werden können. Ein Style kann einen key haben, mit dem<br />
man ihn referenzieren kann, <strong>und</strong> einen TargetType, der festlegt, auf welche Elemente<br />
er angewendet werden kann. Auch kann ein Style einen anderen Style erweitern (mit<br />
dem Attribut BasedOn). Des Weiteren können in Styles auch Trigger definiert werden<br />
(siehe Abschnitt Trigger).<br />
Listing 4.3 zeigt ein einfaches Beispiel für einen Style.<br />
1 <br />
2 <br />
3 <br />
4 <br />
Listing 4.3: Beispiel Styles<br />
Templates<br />
Während ein Style nur Eigenschaften eines Elements setzt, kann ein Template den<br />
kompletten <strong>Visual</strong>Tree eines Elements austauschen <strong>und</strong> damit ein völlig anderes<br />
Aussehen des Elements erreichen. Templates sind die wesentliche Technik, um die<br />
Eigenschaften <strong>und</strong> das Verhalten eines Widgets von seinem Aussehen zu trennen.<br />
Es gibt drei verschiedene Arten von Templates: ControlTemplates, mit denen sich<br />
das Aussehen eines Widgets anpassen lässt; DataTemplates, die es im Wesentlichen<br />
erlauben, für beliebige (Daten) Objekte eine visuelle Repräsentation zu erzeugen <strong>und</strong><br />
ItemsControlTemplates, mit denen ItemsPanels (z.B. ListBoxes) anpasst werden<br />
können.<br />
Trigger<br />
Trigger definieren, ähnlich wie die Styles, eine Reihe von Settern für Eigenschaften.<br />
Diese werden dann angewandt, wenn ein spezieller Zustand ausgelöst wurde. Bei<br />
PropertyTriggern <strong>und</strong> DataTriggern ist dies, wenn zugehörige Eigenschaften<br />
einen bestimmten Wert angenommen haben, oder bei EventTriggern, falls ein