34
Silverlight Styling mit Expression Blend Christian Moser Software Developer and UX Designer Zühlke Engineering AG http://www.wpftutorial.net

Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Embed Size (px)

Citation preview

Page 1: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Silverlight Stylingmit Expression Blend

Christian MoserSoftware Developer and UX DesignerZühlke Engineering AG

http://www.wpftutorial.net

Page 2: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Ziel meiner Session

Sie kennen die wichtigsten Styling-Konzepte von SilverlightSie wissen, welches Konzept sich für welche Lösung eignet.Sie können die Konzepte in Ihren Projekten anwenden

Page 3: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Projekt Pizza Shop

Page 4: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Projekt Pizza Shop - Gestylt

Page 5: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Motivation zum Styling

Ein übersichtliches Screendesign steigert die UsabilityBilder und Farben transportieren EmotionenMarkante Farben und Formen schaffen einen WiedererkennungseffektDas Nutzungserlebnis wird gesteigert

Page 6: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Inline Styling

Page 7: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Inline-Styling

Jedes Silverlight Control besitzt eine Liste von Eigenschaften

Height, Width, Background, Foreground, FontFamily, FontSize,Content, Margin, Padding,…

Die Eigenschaften können direkt am Control überschrieben werden

Page 8: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Inline-Styling

Ohne Styling

Mit Styling

Page 9: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Vorteile von Inline-Styles

Ergebnis ist direkt sichtbarEinfaches KonzeptKeine Beeinflussung von anderen ElementenGeeignet für Eigenschaften, die nur für ein Control gelten

Page 10: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Nachteile des Inline-Stylings

Die XAML Datei wird gross und unübersichtlichDurch die hohe Redundanz wird das Design schlecht wartbar

Page 11: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Analogie: Inline-Styles in HTML

Page 12: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

CSS Styles in HTMLDefinition

Anwendung

Page 13: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Styles

Page 14: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Styles

Trennen die grafische Präsentation vom Inhalt Fassen gleiche Eigenschaften zusammenKönnen auf mehrere Controls angewendet werdenDas Design ist besser wartbar

Page 15: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Grenzen von Styles

Das Aussehen eines Controls kann nicht beliebig verändert werden (z.Bsp. Form)

Fehlersuche in komplexen Styles kann aufwändig sein

Page 16: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Beispiel eines Styles

Definition

Anwendung

Page 17: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Ressourcen

Page 18: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Ressourcen

Sind Objekte, die von mehreren Controls verwendet werden könnenRessourcen können an jedes Control angehängt werdenRessourcen werden hierarchisch vererbtEine Ressource wird durch einen eindeutigen Schlüssel identifiziert

Page 19: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Beispiele von Ressourcen

Page 20: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Control Templates

Page 21: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Aufbau von Silverlight Controls

Logik und Präsentation sind getrenntDie Logik definiert die Eigenschaften und das VerhaltenDie Präsentation wird durch ein Template definiertTemplates bestehen wiederum aus primitiven ControlsJedes Controls hat ein Default TemplateDas Template kann ersetzt werden

Page 22: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Background Content

BorderBrush IsEnabled

BorderThikness

IsFocussedButton

Innenleben eines Templates

In den Warenkorb

Binding Binding Binding Binding Binding Binding

Page 23: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Content Presenter

Stellt den Inhalt der Content Eigenschaft innerhalb eines ControlTemplates dar

ContentPresenter

Page 24: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

ControlTemplate für einen ButtonDefinition

Anwendung

Page 25: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Zustände von Controls

Disabled Normal MouseOver Pressed

Unfocused

Focused

Common States

FocusStates

Pro Gruppe ist nur ein Zustand aktivAktive Zustände werden überlagert

Page 26: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Zustände von Controls

Die möglichen Zustände werden durch das Control vorgegebenDas ControlTemplate definiert das Aussehen der verschiedenen ZuständeDer VisualStateManager steuert die Zustände und Übergänge

Page 27: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

DataTemplates

Page 28: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Data Templates

Definieren das Aussehen eines Items in einer ListeDer DataContext ist auf das dazugehörige Datenobjekt der Liste gesetzt

Page 29: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Default Data Template

ItemTemplate

Page 30: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Benutzerdefiniertes Template

ItemTemplate

Page 31: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Anordnung der Items ändern

ItemsPanelTemplate

Page 32: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Third-Party Libraries

http://www.telerik.com/silverlight http://www.infragistics.com

http://www.componentone.com

Page 33: Christian Moser Software Developer and UX Designer Zühlke Engineering AG

Zusammenfassung

Inline Styling ist einfach, das Design ist jedoch schlecht wartbarStyles fassen Eingenschaften zusammen und können auf mehrere Controls angewendet werden.ControlTemplates ersetzen das Aussehen eines ControlsDataTemplates ersetzen das Aussehen eines Items in einer Liste

Page 34: Christian Moser Software Developer and UX Designer Zühlke Engineering AG