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

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

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

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 .