XAML UI DEVELOPMENT BEST PRACTICES 2.0

117
XAML UI DEVELOPMENT BEST PRACTICES 2.0 [email protected] SENIOR SOFTWARE & UX ENGINEER DAVID C. THÖMMES UI DEVELOPMENT & CONSULTING IT-BERATUNG UND SOFTWAREENTWICKLUNG

Transcript of XAML UI DEVELOPMENT BEST PRACTICES 2.0

Page 1: XAML UI DEVELOPMENT BEST PRACTICES 2.0

XAML UI DEVELOPMENT BEST

PRACTICES [email protected]

SENIOR SOFTWARE & UX ENGINEER

DAVID C. THÖMMES

UI DEVELOPMENT & CONSULTING IT-BERATUNG UND SOFTWAREENTWICKLUNG

Page 2: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Reminder

UX = User Experience

• Beschreibt die Summe aller Erfahrungen die ein Benutzer mit einem Produkt erlebt

• Werbung, Website, Verpackung, Bedienung …

Usability (Gebrauchstauglichkeit während der Nutzung)

• Effektivität zur Lösung einer Aufgabe

• Effizienz der Handhabung des Systems

• Zufriedenheit der Nutzer einer Software

2

Page 3: XAML UI DEVELOPMENT BEST PRACTICES 2.0

DCT’S UI DEVELOPMENT STAGES!

3

Page 4: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF = bessere & schönere UI‘s ?

Page 5: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES

Stage 1

• Alte UI Technologie (WinForms, MFC, WinCC … schlimmer …)

• UX Design und Usability finden keinen Beachtung / Nicht Bekannt

• Negative UX, Schlechte Usability, Kein ästhetischer Anspruch

• „Es läuft und wir haben für jede Funktion einen Button!“

5

Page 6: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Stage 2

• Neuere UI Technologie wie WPF oder HTML5

• Kein UX Designer oder UX Engineer involviert (Vielleicht höchstens ein Mediengestalter)

• Entwickler entdecken Farben, neue Controls etc.

• Negative bis neutrale UX

• Schlechte bis leicht verbesserte Usability (Durch Controls)

• Kein ästhetischer Anspruch

• „Wir haben nun DataGrids mit Filtern und ein Ribbon von Microsoft!“

6

Page 7: XAML UI DEVELOPMENT BEST PRACTICES 2.0
Page 8: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Stage 3

• Semi bis professionelles UX Design vorhanden

• Nötige Kompetenz in der Rolle des UI Developer fehlt

• Positivere UX und verbesserte Usability auf dem Papier, Ästhetik gewinnt an Bedeutung

• „Das Konzept ist geil aber zu aufwändig und zu teuer in der Entwicklung!“

8

Page 9: XAML UI DEVELOPMENT BEST PRACTICES 2.0

9

Page 10: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Stage 4

• Semi bis professionelles UX Design vorhanden

• Kompetenzen im Bereich UI Development vorhanden

• Positive UX

• Gute bis sehr gute Usability

• Ästhetik und gutes visuelles Design

• „Bedient sich echt geil! Die Benutzer lieben es!“

10

Page 11: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Bäm! Aufgeräumt und klar

Page 12: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF ist das Toolkit! User-centered Design der Weg…

http://commons.wikimedia.org/wiki/File:Basic_guitar_toolkit_by_TT_Zop.jpg

Page 13: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Iterativer Prozess mit Rücksprüngen

13

Page 14: XAML UI DEVELOPMENT BEST PRACTICES 2.0

RESOURCE MANAGEMENT: REVISITED

14

Page 15: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES

Strategie

• Zentrales „Styling Projekt“ für alle relevanten WPF Ressourcen

• Beinhaltet wohldefinierte Struktur aus Resource Dictionaries

• Pflege, Wartbarkeit und Zusammenarbeit vereinfachen

• Vermeidung unnötiger Inkonsistenzen und Redundanzen

15

Page 16: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Styling Projekt

16

WPF UI DEVELOPMENT BEST PRACTICES

Page 17: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Styling Projekt

17

WPF UI DEVELOPMENT BEST PRACTICES

Feingranulare Struktur

Page 18: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Colors & Brushes

18

WPF UI DEVELOPMENT BEST PRACTICES

Auslagern von Colors und

Brushes

Page 19: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Farbpalette des UI Designs als Color Objekte anlegen

Page 20: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Aus Colors

Brushes erstellen

Page 21: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Settings & Typo

21

WPF UI DEVELOPMENT BEST PRACTICES

Konstanten, Pfade,

Schriftgrößen,

Fonts ...

Page 22: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Settings & Typo

22

WPF UI DEVELOPMENT BEST PRACTICES

Definition der Schrift-Layer (Größen)

Page 23: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Styles

23

WPF UI DEVELOPMENT BEST PRACTICES

Pro Control-Typ eigenes

Resource Dictionary

Page 24: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Fokus auf Style Setter und Control Template

Page 25: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Look and Feel Resource Dictionary

25

WPF UI DEVELOPMENT BEST PRACTICES

Ein Resource Dictionary das alle

Ressourcen beinhaltet

Kann später in App.xaml

eingebunden werden

Page 26: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Reihenfolge beachten!

Page 27: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Look and Feel Resource Dictionary

27

WPF UI DEVELOPMENT BEST PRACTICES

Einfaches einbinden...

Page 28: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Vorsicht Performance!

28

WPF UI DEVELOPMENT BEST PRACTICES

Führt zu Mehrfachanlegung

Page 29: XAML UI DEVELOPMENT BEST PRACTICES 2.0

SHARED RESOURCE DICTIONARY IST OK …

29

Page 30: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ALTERNATIVE RESMERGER!

30

Page 31: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

ResMerger

• Tool zum Mergen von verschiedenen Resource Dictionaries zu einem großen Resource Dictionary

• App bindet nur noch ein Resource Dictionary ein

• Merge wird in Build Prozess integriert

• Verhindert exponentieller Anstieg des Arbeitsspeicher

• Verhindert Auflösung von verlinkten Resource Dictionaries

• Ladezeiten

• Kann View-Wechsel / Startup Times dramatisch beschleunigen!

31

Page 32: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Einbindung CLI Tool im Pre Build

Page 33: XAML UI DEVELOPMENT BEST PRACTICES 2.0

FullLookAndFeel Beinhaltet alle Ressourcen in einer Datei!

Page 34: XAML UI DEVELOPMENT BEST PRACTICES 2.0

FullLookAndFeel Beinhaltet alle Ressourcen in einer Datei!

Page 35: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Experiment

• Projekt mit mittlerem Styling Projekt

• ca. 10.000 XAML Zeilen

• 12 Demo Views in Showcase (Hülle)

• Keine reale Datenanbindung

35

Page 36: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

ResMeger - Performance

36

Page 37: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Startup Time MS Startup RAM MB

WPF UI DEVELOPMENT BEST PRACTICES 2.0

ResMeger - Performance

36

Page 38: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Startup Time MS Startup RAM MB

Ohne ResMerger ~3600 - 4500 ~115

WPF UI DEVELOPMENT BEST PRACTICES 2.0

ResMeger - Performance

36

Page 39: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Startup Time MS Startup RAM MB

Ohne ResMerger ~3600 - 4500 ~115

Res Merger ~500 - 600 ~30

WPF UI DEVELOPMENT BEST PRACTICES 2.0

ResMeger - Performance

36

Page 40: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Startup Time MS Startup RAM MB

Ohne ResMerger ~3600 - 4500 ~115

Res Merger ~500 - 600 ~30

WPF UI DEVELOPMENT BEST PRACTICES 2.0

ResMeger - Performance

Steigerung Performance

• Startup Time ca. 85%

• RAM ca. 75%

• Mehr Performance-Indikatoren möglich… ;-)

36

Page 41: XAML UI DEVELOPMENT BEST PRACTICES 2.0

GitHub https://github.com/dctdct/WPF-ResMerger

Page 42: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ICONS

38

Page 43: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ICON FONTS

39

Page 44: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Icon Fonts

• Schriftart nur mit Icons / Glyphs (Einfarbig)

• Einfaches Skalieren der Größe (Vektor)

• Farbe kann ohne Probleme angepasst werden (Trigger)

• Kombination der Icons kinderleicht (Multiple TextBlöcke)

• Extrem einfache Verwendung im Vergleich zu PNGs etc.

• Device unabhängig

• Pflegeleicht!

40

Page 45: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Segoe UI Symbol Standard Icon Font von Windows

Page 46: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Character Map Anzeige der Char Codes

Page 47: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Character Map Kopieren der Codes

Page 48: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF Code auf TextBlock anwenden

Page 49: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Cool! Einfach! :-)

Page 50: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ICON FONTS SYSTEMATISCH VERWENDEN

46

Page 51: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Icon Fonts systematisch verwenden

Idee

• Ein Glyph per Datentyp mit weiteren Informationen kapseln (FontIcon)

• Schriftfamilie

• Char Code

• …

• Darstellung über implizite DataTemplate

• Verwendung über beliebigen ContentPresenter

47

Page 52: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Icon Font einbinden Die .ttf Datei ins Projekt ablegen

Build Action Resource

Page 53: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Icon Font als Resource Innerhalb eines RD als Resource anlegen

Mit # Name angeben (Systemsteuerung)

Page 54: XAML UI DEVELOPMENT BEST PRACTICES 2.0

FontIcon Datentyp Kapselt Daten eines Glyph…

Page 55: XAML UI DEVELOPMENT BEST PRACTICES 2.0

FontIcons anlegen Name, Family und Char Code!

Page 56: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Ergosign IconFont

Page 57: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Implizite DataTemplate Ohne x:Key und TextBlock mit diversen Bindings

Page 58: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Verwenden Easy!!!!

Page 59: XAML UI DEVELOPMENT BEST PRACTICES 2.0
Page 60: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Free Custom Icon Fonts Fontello, Font Awesome, … !

Page 61: XAML UI DEVELOPMENT BEST PRACTICES 2.0

PNG UND XAML ICONS?

57

Page 62: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

PNG und XAML Icons

• Auslagern als Resource in Resource Dictionary

• Darstellung über implizite DataTemplate

• PNG

• Image Control mit ImageSource

• XAML Icon

• Rectangle oder Path mit DrawingBrush / StreamGeometry

• Verwendung über beliebigen ContentPresenter

58

Page 63: XAML UI DEVELOPMENT BEST PRACTICES 2.0

PNG Als ImageSource

Page 64: XAML UI DEVELOPMENT BEST PRACTICES 2.0

DataTemplate Mit Image Control

Page 65: XAML UI DEVELOPMENT BEST PRACTICES 2.0

XAML Icons DrawingBrush und Geometry

Page 66: XAML UI DEVELOPMENT BEST PRACTICES 2.0

DataTemplate Path oder Rectangle

Page 67: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ATTACHED PROPERTIES

63

Page 68: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Einführung

• Gleich wie Dependency Properties

• Metadaten und Speicherperformance, Änderungsbenachrichtigungen, Grundlage für Trigger, Data Binding, Animationen etc.

• Definition nicht für eine bestimmtes Control sondern global in einer zentralen Klasse für alle Controls

• Möglichkeit auf einem beliebigen Control zusetzen

• Häufig verwendet bei Layout Panels (Standard WPF)

• Grid.Row, Grid.Column, ...

64

Page 69: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Beispiel DIY RegisterAttached call + statischer Getter und Setter

Page 70: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Beispiel DIY Verwendung in Button Style

Page 71: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Beispiel DIY Setzen der Attached Property auf der View

Page 72: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Auch in DataTemplates Binding mit RelativeSource…

Page 73: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Verschachtelung Ohne Problem möglich!

Page 74: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Footer Beispiel Attached für Footer DataTemplate

In ControlTemplate ContentPresenter

Page 75: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Verwendungszwecke

• Gut für simple Eigenschaft auch gerne für Styling

• CornerRadius, Icon, HighlightBrush, …

• ToggleButtonStyle, ScrollBarStyle, …

• Placeholder, IsOpen, …

• Footer, FooterDataTemplate, GroupHeader, …

• oder zur Realisierung überschaubarer Zusatzfunktionalität (Simple Commands)

71

Page 76: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Mehr Beispiele UI Development Unchained Vortrag ;-)

Page 77: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Attached Properties vs. Custom Controls

73

KAPITELTITEL

Page 78: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ATTACHED PROPERTIES CUSTOM CONTROL ABLEITUNG

Attached Properties vs. Custom Controls

73

KAPITELTITEL

Page 79: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ATTACHED PROPERTIES CUSTOM CONTROL ABLEITUNG

FLEXIBILITÄTSehr hoch durch anheften (Immer möglich)

Hoch, wenn Ableitung möglich

Attached Properties vs. Custom Controls

73

KAPITELTITEL

Page 80: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ATTACHED PROPERTIES CUSTOM CONTROL ABLEITUNG

FLEXIBILITÄTSehr hoch durch anheften (Immer möglich)

Hoch, wenn Ableitung möglich

FUNKTIONALITÄT Beschränkter (Statisch) Frei in Ableitung

Attached Properties vs. Custom Controls

73

KAPITELTITEL

Page 81: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ATTACHED PROPERTIES CUSTOM CONTROL ABLEITUNG

FLEXIBILITÄTSehr hoch durch anheften (Immer möglich)

Hoch, wenn Ableitung möglich

FUNKTIONALITÄT Beschränkter (Statisch) Frei in Ableitung

REDUNDANZ Keine Höher (Icon für Button + CheckBox)

Attached Properties vs. Custom Controls

73

KAPITELTITEL

Page 82: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ATTACHED PROPERTIES CUSTOM CONTROL ABLEITUNG

FLEXIBILITÄTSehr hoch durch anheften (Immer möglich)

Hoch, wenn Ableitung möglich

FUNKTIONALITÄT Beschränkter (Statisch) Frei in Ableitung

REDUNDANZ Keine Höher (Icon für Button + CheckBox)

AUFWAND / PFLEGE Geringer (Zentrale Klasse) Aufwändiger (Viele Klassen)

Attached Properties vs. Custom Controls

73

KAPITELTITEL

Page 83: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ATTACHED PROPERTIES CUSTOM CONTROL ABLEITUNG

FLEXIBILITÄTSehr hoch durch anheften (Immer möglich)

Hoch, wenn Ableitung möglich

FUNKTIONALITÄT Beschränkter (Statisch) Frei in Ableitung

REDUNDANZ Keine Höher (Icon für Button + CheckBox)

AUFWAND / PFLEGE Geringer (Zentrale Klasse) Aufwändiger (Viele Klassen)

ERWEITERBARKEIT Gut Gut

Attached Properties vs. Custom Controls

73

KAPITELTITEL

Page 84: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ATTACHED PROPERTIES CUSTOM CONTROL ABLEITUNG

FLEXIBILITÄTSehr hoch durch anheften (Immer möglich)

Hoch, wenn Ableitung möglich

FUNKTIONALITÄT Beschränkter (Statisch) Frei in Ableitung

REDUNDANZ Keine Höher (Icon für Button + CheckBox)

AUFWAND / PFLEGE Geringer (Zentrale Klasse) Aufwändiger (Viele Klassen)

ERWEITERBARKEIT Gut Gut

VERSTÄNDNIS / WISSENUnter Umständen schwieriger (Extreme Konstrukte)

Einfacherer

Attached Properties vs. Custom Controls

73

KAPITELTITEL

Page 85: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ATTACHED PROPERTIES CUSTOM CONTROL ABLEITUNG

FLEXIBILITÄTSehr hoch durch anheften (Immer möglich)

Hoch, wenn Ableitung möglich

FUNKTIONALITÄT Beschränkter (Statisch) Frei in Ableitung

REDUNDANZ Keine Höher (Icon für Button + CheckBox)

AUFWAND / PFLEGE Geringer (Zentrale Klasse) Aufwändiger (Viele Klassen)

ERWEITERBARKEIT Gut Gut

VERSTÄNDNIS / WISSENUnter Umständen schwieriger (Extreme Konstrukte)

Einfacherer

REUSE Gut Gut (Custom Control Library)

Attached Properties vs. Custom Controls

73

KAPITELTITEL

Page 86: XAML UI DEVELOPMENT BEST PRACTICES 2.0

BLEND INTERACTIVITY

74

Page 87: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Einführung

• Bietet zahlreiche Actions und Behaviors

• Gut für Lösung kleiner MVVM Probleme!

• Eigene Behaviors / Actions

• Ermöglichen funktionale Erweiterung ohne Ableitung

• Werden an Controls angeheftet

75

Page 88: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Blend öffnen Behaviors anschauen

Page 89: XAML UI DEVELOPMENT BEST PRACTICES 2.0

PROPERTY AUS USERCONTROL AUF WINDOW SETZEN?

77

Page 90: XAML UI DEVELOPMENT BEST PRACTICES 2.0

ChangePropertyAction Kombiniert mit FindAncestor Binding!

Page 91: XAML UI DEVELOPMENT BEST PRACTICES 2.0

COMMAND OHNE COMMAND PROPERTY AUSLÖSEN?

79

Page 92: XAML UI DEVELOPMENT BEST PRACTICES 2.0

InvokeCommandAction Beispiel Daten einer ComboBox bei GotFocus

Page 93: XAML UI DEVELOPMENT BEST PRACTICES 2.0

TOOLS

81

Page 94: XAML UI DEVELOPMENT BEST PRACTICES 2.0

XAML STYLER

82

Page 95: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

XAML Styler

• Freies Visual Studio Plugin

• Erlaubt Formatierung für XAML Source-Code

• Erweiterte Attribute Formatierung

• http://visualstudiogallery.msdn.microsoft.com/d6634d0e-38fb-48b6-829f-dadbc5c2fb62

83

Page 96: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Beautify Über Context Menu

Page 97: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Überblick Leichtes Scannen für Auge

Page 98: XAML UI DEVELOPMENT BEST PRACTICES 2.0

SNOOP

86

Page 99: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Snoop

• Mächtiges Open-Source Spy Util

• Kompletter Visual Tree einer Applikation anschauen

• Properties lesen und setzen

• 2D und 3D Darstellung

• Control Events auswerten

• Sehr nützlich für XAML Debugging

• https://snoopwpf.codeplex.com/

87

Page 100: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Properties Detaillierte Informationen zu Controls

Page 101: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Experiment DataGrid vs. Drittanbieter (Visual Tree)

Page 102: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Experiment DataGrid vs. Drittanbieter (Visual Tree)

Page 103: XAML UI DEVELOPMENT BEST PRACTICES 2.0

3D Darstellung Nützlich bei komplexen Controls

Page 104: XAML UI DEVELOPMENT BEST PRACTICES 2.0

3D Darstellung Nützlich bei komplexen Controls

Page 105: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Events Darstellung von Live Events

Page 106: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF INSPECTOR

94

Page 107: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

WPF Inspector

• Open-Source Spy Util

• Visual Tree einer Applikation anschauen

• Properties lesen und setzen

• Debugging

• http://wpfinspector.codeplex.com/

95

Page 108: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Visual Tree Darstellung der Controls

Page 109: XAML UI DEVELOPMENT BEST PRACTICES 2.0

PERFORATOR

97

Page 110: XAML UI DEVELOPMENT BEST PRACTICES 2.0

WPF UI DEVELOPMENT BEST PRACTICES 2.0

Perforator

• Tool zur Überwachung des Render-Verhaltens

• Bestandteil WPF Performance Suite

• FPS, Dirty Rect, Intermediate Render Targets, ...

• http://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKPerformanceToolKit_amd64/wpt_x64.msi

• http://msdn.microsoft.com/en-us/library/aa969767(v=vs.110).aspx

98

Page 111: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Render Verhalten

Fake Beispiel mit schlechter Performance... (DropShadow auf

Window)

Page 112: XAML UI DEVELOPMENT BEST PRACTICES 2.0

RESMERGER!

100

Page 113: XAML UI DEVELOPMENT BEST PRACTICES 2.0

KONTAKT!

101

Page 114: XAML UI DEVELOPMENT BEST PRACTICES 2.0

http://www.davidchristian.de

Better Call WPF DCT!

Page 115: XAML UI DEVELOPMENT BEST PRACTICES 2.0

GitHub Repo https://github.com/dctdct/WPF-UI-Development-Best-Practices

Page 116: XAML UI DEVELOPMENT BEST PRACTICES 2.0

Kuh Leichtes Scannen für Auge

Page 117: XAML UI DEVELOPMENT BEST PRACTICES 2.0

VIELEN DANK.GRAF-JOHANN-STRAßE 19

66121 SAARBRÜCKEN

GERMANY

WWW.DAVIDCHRISTIAN.DE

T +49 681 688 9528 [email protected]

UI DEVELOPMENT & CONSULTING IT-BERATUNG UND SOFTWAREENTWICKLUNG

DAVID C. THÖMMES