70 likes | 176 Views
Windows Presentation Foundation WS 2013/14 Prof. Dr. Herrad Schmidt. Kapitel 7 Styles, Trigger, Templates. Styles (1) s.a. http:// msdn.microsoft.com/en-us/library/bb613570.aspx Mit einem Style-Objekt werden Werte für mehrere Dependency -Properties definiert. < Style>
E N D
Windows PresentationFoundationWS 2013/14Prof. Dr. Herrad Schmidt Kapitel 7 Styles, Trigger, Templates
Styles (1) s.a. http://msdn.microsoft.com/en-us/library/bb613570.aspx • Mit einem Style-Objekt werden Werte für mehrere Dependency-Properties definiert. <Style> <Style.Setters> <Setter Property="Button.Background" Value="#849ABD"/> </Style.Setters> </Style> • Für aus FrameworkElement und FrameworkContentElement abgeleitete Klassen gibt es ein Property Style, dem ein Style-Objekt zugewiesen werden kann. <Button.Style> <Style> … • Der Style besitzt ein TargetType-Property. Dort kann man den Typ hinterlegen, für den der Style gelten soll.
Styles (2) • Styles können als logische Ressource definiert werden. Damit kann er auf mehrere Elemente angewandt werden. • Benannter Style: Der Style wird mit einem key-Attribut versehen und über diesen als logische Ressource referenziert werden. • Impliziter Typ:Dem TargetType wird der Typ der Klasse zugewiesen, auf deren Instanzen der Style implizit angewandt werden soll. Der Style wird implizit von einem Element dieser Klasse referenziert. • Lokal gesetzte Werte von Properties haben Vorrang gegenüber einem Wert, der in einem Style gesetzt wurde. • Soll nicht implizit referenziert werden, muss Style="{x:Null}"gesetzt werden. • Ein Style kann für verschiedene Typen verwendet werden.
Trigger • Trigger definieren dynamische Aktionen. • Ein Trigger besteht aus einer Bedingung und Aktionen. • Die Style-Klasse besitzt ein Triggers-Property vom TypTriggerCollectionund enthält einen oder mehrere TriggerBase-Objekte. • Property-Trigger:Die Aktion wird ausgelöst, sobald eine Dependency-Property einen bestimmten Wert annimmt. • DataTrigger:Die Aktion wird ausgelöst, sobald eine .NET Property mit Data Binding einen bestimmten Wert annimmt. • EventTrigger:Die Aktion wird ausgelöst, sobald ein bestimmtes Routed-Event (siehe Animationen) eintritt.
Templates (1) s.a. http://msdn.microsoft.com/en-us/library/ms745683.aspx • Mit Templates kann die optische Gestaltung eines Controls bestimmt werden. • Das Template definiert den visualtree für ein Controlund keine Werte für Dependency-Properties (wie beim Style). Quelle: http://www.wpftutorial.net/Templates.html
Templates (2) • Ein Template wird oftmals innerhalb eines Styles definiert. • Ein Template wird üblicherweise den logischen Ressourcen hinzugefügt. • ControlTemplatebeschreibt das Aussehen eines ControlsDer Property Template eines Controls wird ein ControlTemplate zugewiesen.Mit dem ContentPresenter wird bestimmt, wo der Content einzufügen ist.Über TemplateBinding wird der Wert einer Property im ControlTemplate mit dem Wert einer Property für das Control verknüpft. • ItemsPanelTemplatedefiniert das Panel, das von einem ItemsControl für das Layout der Items verwendet wird • DataTemplatebestimmt das Aussehen von Daten
Solution 7_StylesTriggerTemplates A_Styles B_Trigger C_Templates D_RessourcenDictionary