Control Templates. Thomas Claudius Huber

Ähnliche Dokumente
MVVM in Windows 8 und Windows Phone 8

Zeitlich abhängig von OWB?

Daniel Greitens, maximago GmbH. Steuerelemententwicklung mit WPF / Silverlight / WP7

Know-how Sammlung, Verteilung und Pflege bei einem mittelständischen IT-Dienstleister

Windows Presentation Foundation

Von Windows-Forms zu WPF mit Expression Blend? Thomas Müller conplement AG Nürnberg

CI mit Forms im Weblogic Umfeld: CI mit Forms geht das

GUI-Entwicklung 2: Windows Presentation Foundation

Silverlight for Windows Embedded. Martin Straumann / Stv. Business Unit Leiter Microsoft Technologien / Application developer

WPF - Windows Presentation Foundation

Unterstützt oder beschäftigt Ihr CRM- System die Mitarbeiter bei Ihrer täglichen Arbeit?

WINDOWS PRESENTATION FOUNDATION (WPF) Martin Kühn

Modellierung agiler Data Warehouses mit Data Vault Dani Schnider, Trivadis AG DOAG Konferenz 2015

Die SharePoint-Welt für den erfahrenen.net-entwickler. Fabian Moritz MVP Office SharePoint Server ITaCS GmbH

WPF. Windows Presentation Foundation. Sven Hubert Student Partner Microsoft Academic Program

8. April 2013 Vorlagenmanagement effizient umgesetzt

Beratung Messbar / Transparent / Reproduzierbar

Grundlagen und Best Practices bei der SharePoint Entwicklung

Ein UI in zwei Welten - Controls in HTML5 und WPF. Timo Korinth

Die Oracle BI Trilogie von Trivadis

Automatisiertes UI Testing. Mark Allibone, , #2

Microsoft Office SharePoint 2007

{ Light up the Web } Oliver Scheer. Evangelist Microsoft Deutschland

Adobe Flex & Grails RIA, REST und XML

Inhalt. Vorwort Das.NET Framework Das Programmiermodell der WPF Einführung in XAML... 45

Windows Presentation Foundation - Crashkurs

Dimensionale Modellierung mit Oracle BI EE und Oracle OLAP Tipps und Tricks aus der Praxis

Value Delivery and Customer Feedback

Von WinForms nach WPF

Das Configuration Management im Oracle-Datenbank-Umfeld

Elisabeth Stettler. Business Consultant. Andreas Gerig. Consultant/Projekt Manager.

Oracle Fusion Middleware Forms & Reports - Go Live!

Testers Architects Enterprise Dev Consultants Professionals VB6 Devs Part-Timers Hobbyists Students Enthusiasts Novices

Windows Presentation Foundation - Crashkurs

MOBILE ON POWER MACHEN SIE IHRE ANWENDUNGEN MOBIL?!

O-BIEE Einführung mit Beispielen aus der Praxis

New Features Oracle Forms 11g Nichts Neu für Forms?

Technologietag SharePoint 2010

Cross-Platform Mobile Development mit Xamarin Mark

6. Jahreskongress der IT-Freiberufler: Oracle-Wettbewerbsvorteile durch qualifizierte IT-Ausbildung

Exkursion zu Capgemini Application Services Custom Solution Development. Ankündigung für Februar 2013 Niederlassung Stuttgart

Inhaltsverzeichnis. Vorwort Einleitung. 1 Die Philosophie Die neue Technologie: XAML, WPF und Silverlight 47

Microsoft Business Intelligence und Corporate Performance Management 37. Der richtige Produkt-Mix am Beispiel eines effizienten Kundendienstes 154

Jürgen Kotz Rouven Haban Simon Steckermeier. WCF, WPF und WF - Ein Überblick ADDISON-WESLEY. An imprint of Pearson Education

Lebenslauf. Persönliche Angaben. Sprachen. Aus- und Weiterbildung. mündlich: gut schriftlich: gut Grundkenntnisse. Englisch.

Von$Siebel$zu$Fusion$als$evolu0onärer$Weg$$$$$$$$$$$$$$$$$$$$$$$ Alexander$Doubek$ Senior$Manager$ $

Visual Studio 2012 Windows 8 und.net 4.5. Hans Peter Bornhauser, Noser Engineering AG Fachbereichsleiter.NET, Digicomp AG

Die nächste Revolution in der modelgetriebenen Entwicklung?

Integration von Web Services in J EE Anwendungen mit XFire. 1/26 André Janus - Integration von Web Services in J EE Anwendungen mit XFire

Duet Enterprise für SAP und Microsoft SharePoint

TFS Customzing. in der Praxis. Thomas Gugler. seit 2005 bei ANECON. .NET seit 2002 (happy bday!) Schwerpunkte: MCPD.Net 4.0, MCTS TFS, Scrum Master,

Romano Roth & Oliver Brack Zühlke Engineering AG

Data Warehouse schnell gemacht Performanceaspekte im Oracle DWH

VSTO Was gibt es Neues in der Office Entwicklung? Lars Keller netcreate OHG

Testmanagement. Marc Müller Principal

Office und.net - zwei Welten wachsen zusammen mit VSTO 3.0. Lars Keller netcreate OHG

Lizenzierung von morgen Planen Sie im Voraus und nutzen Sie die Zukunft noch heute. Roman Heimgartner

Rapid Application Development

Installation Forms/Reports 11g auf Windows 64bit

ITIL Capacity Management für den Oracle DBA

ios, Android, WP7... Alle nativ auf einen Streich!

Das generierte Data Warehouse

XAML Extensible Application Markup Language. Manuel Naujoks (IB3)

Blend für Nicht-Designer

WPF: Viele bunte Smart Clients

Die Erkenntnis von gestern muss heute mit einem neuen TEAM - Ihr Partner für IT 2

Windows Presentation Foundation - WPF

Business Applika-onen schnell entwickeln JVx Framework - Live!

Thomas Claudius Huber. Asynchrone Programmierung mit C#

Anpassung von WSS und MOSS Websites

Thomas Claudius Huber Trivadis Services AG. Endlich Cross-Platform: Universal- Windows-Apps für Windows 10

Heinrich & Reuter Solutions GmbH

Company Profile Computacenter

After fire and the wheel, cloud is the new game changer.

Ablösung von Oracle-Datenbanken mit PostgreSQL oder MariaDB. Präsentation 23. Juni 2016

Norbert. Eder. Windows Presentation Foundation 4. Einführung und Praxis. inklusive CD-ROM

Product Lifecycle Manager

AnyWeb AG

Einsparung von Wartungs- und Lizenzkosten durch Konsolidierung

ANG Trainer. Wir machen das. Punkt und Gut!

Customer Day 2009 Windows Patch Management

Transkript:

Control Templates Thomas Claudius Huber thomas.huber@trivadis.com www.thomasclaudiushuber.com

Thomas Claudius Huber.NET Senior Consultant @Trivadis Basel Spezialisiert auf Silverlight und WPF Autor der umfassenden Handbücher zu Silverlight und WPF Entwickelt im Business-Umfeld hauptsächlich WPF- und Silverlight- Anwendungen

Trivadis Solutions Portfolio and competences CUSTOMER Business departments BUSINESS INTEGRATION SERVICES IT SOLUTIONS, SERVICES, & PRODUCTS Business Intelligence Enterprise Content Management Infrastructure Engineering Application Development IT departments Training Managed Services Integration, Application Performance Management, Security TECHNOLOGIES Microsoft, Oracle, IBM, Open Source

Trivadis facts & figures Hamburg 11 Trivadis locations with more than 550 employees Financially independent and sustainably profitable Key figures 2010 Düsseldorf Frankfurt ~170 employees Revenue CHF 101 / EUR 73 mio. Services for more than 700 clients in over 1 800 projects Over 170 Service Level Agreements Basel Bern Lausanne Stuttgart Freiburg Zurich ~370 employees Munich Vienna ~20 employees More than 5'000 training participants Research and development budget: CHF 5.0 / EUR 3.6 mio.

Agenda Das Aussehen anpassen Logik und Aussehen Verbinden TemplateBinding PART-Elemente Visuelles Feedback Trigger Visual States Eigene Custom Controls entwickeln

WPF/Silverlight-Controls sind lookless das Aussehen ist von der Logik getrennt Das Aussehen eines Controls wird über ein ControlTemplate (XAML) definiert Die Logik wird klassisch in C# oder VB.NET implementiert

Aussehen in Visual Studio XAML anpassen

Aussehen in Blend anpassen

Agenda Das Aussehen anpassen Logik und Aussehen Verbinden TemplateBinding PART-Elemente Visuelles Feedback Trigger Visual States Eigene Custom Controls entwickeln

Logik und Aussehen verbinden Controls nutzen dazu zwei Möglichkeiten TemplateBinding PART-Elements

TemplateBinding Markup-Extension TemplateBinding Bindet eine Dependency Property aus einem Element des ControlTemplates an eine Property des Controls, auf welches das Template angewendet wird Falls keine Dependency Property vorliegt, wird ein normales Binding verwendet Mit {Binding RelativeSource={RelativeSource TemplatedParent},Path= }

TemplateBinding

PART-Elemente Einige Controls verlangen im ControlTemplate bestimmte Elemente mit bestimmten Namen Die erwarteten Elemente gibt das entsprechende Control mit TemplatePart- Attributen auf Klassenebene an

PART-Elemente

Expression Blend In Visual Studio werden ControlTemplates von Hand in XAML geschrieben Blend unterstützt im Gegensatz zu Visual Studio das erstellen von ControlTemplates im Designer Blend unterstützt dabei das TemplateBinding und PART-Elemente

TemplateBinding und PART-Element in Expression Blend

Agenda Das Aussehen anpassen Logik und Aussehen Verbinden TemplateBinding PART-Elemente Visuelles Feedback Trigger Visual States Eigene Custom Controls entwickeln

Visuelles Feedback Visuelles Feedback, wie MouseOver-Effekte, werden mit Triggern oder Visual States eingebunden Trigger werden nur von WPF, nicht jedoch von Silverlight unterstützt Silverlight verwendet für das visuelle Feedback sogenannte Visual States. Diese sind auch in WPF 4.0 möglich In WPF 4.0 nutzen die Default-Templates der Controls allerdings Trigger.

Trigger Trigger lassen sich sehr einfach in XAML schreiben Die ControlTemplate-Klasse besitzt eine Triggers-Property, zu welcher die Trigger hinzugefügt werden Ein Trigger kann eine Property eines Elements im Template setzen eine Animation auslösen (welche eine Property eines Elements im Template animiert)

Visuelle Zustände via Trigger

Visuelle Zustände via Trigger in Expression Blend

Visuelle Zustände via Visual State Manager Der Visual State Manager hat seinen Ursprung in Silverlight wurde in.net 4.0 auch in die WPF übernommen Ist gegenüber Triggern Designer-freundlicher Anstatt mit Events und Properties wird mit tatsächlichen Zuständen gearbeitet Lässt sich aufgrund der Menge an XAML-Code nicht leicht von Hand schreiben

Visuelle Zustände via Visual State Manager Ein Visual State beschreibt einen visuellen Zustand eines Controls Visual States lassen sich gruppieren Aus jeder Gruppe ist genau ein Visual State aktiv Visual States werden auf Klassenebene mit dem TemplateVisualState-Attribute deklariert

Visual State Manager

Agenda Das Aussehen anpassen Logik und Aussehen Verbinden TemplateBinding PART-Elemente Visuelles Feedback Trigger Visual States Eigene Custom Controls entwickeln

UserControl vs. Custom Control User Control unterstützt keine Themes und Templates, aber: Ist einfach zu entwickeln. Besteht wie ein Window aus einer XAML- und einer Codebehind-Datei Zum Gruppieren existierender Controls Custom Control unterstützt ControlTemplates, um Logik vom UI zu trennen Theme-spezifisches UI (nur bei WPF, nicht bei Silverlight) Wird automatisch angewendet, wenn das Windows Theme sich ändert Custom Control wird meist dann erstellt, wenn das Control nicht nur von einer Anwendung benötigt wird

Struktur eines Custom Controls Themes\generic.xaml enthält das UI Definiert in XAML In einem Style wird die Template-Property gesetzt Die TargetType-Property enthält den Wert typeof(yourcustomcontrol). YourCustomControl.cs enthält eine Subklasse von Control Der Default-Wert für die DefaultStyleKey-Property wird im statischen Konstruktor definiert, um das Control mit dem Style in generic.xaml zu verbinden.

Struktur eines Custom Controls

UI mit dem Code verbinden Template Binding PART-Elemente

PART-Elemente Elemente im Template mit dem x:name-attribut benennen OnApplyTemplate-Methode überschreiben Darin mit this.template.findname(...) die benannten Elemente auslesen und in Klassenvariablen speichern. Mit TemplatePartAttributen auf der Klasse über die erwarteten Elemente «informieren» Für Entwickler, die das Template neu definieren Für Tools wie Expression Blend

TemplateBinding & Part-Elemente

Visuelle Zustände unterstützen Zentrale Methode für einen Statusübergang erstellen Darin VisualStateManager.GoToState aufrufen Klasse mit TemplateVisualState-Attributen ausstatten Zur Information für Tools wie Expression Blend Anfangsstatus bereits in der OnApplyTemplate- Methode setzen

Visuelle Zustände unterstützen

Agenda Das Aussehen anpassen Logik und Aussehen Verbinden TemplateBinding PART-Elemente Visuelles Feedback Trigger Visual States Eigene Custom Controls entwickeln

Fazit ControlTemplates werden über PART-Elemente, TemplateBinding und VisualStates verbunden Trigger werden nur von der WPF unterstützt Lässt sich das Control in Expression Blend designen, hat der Entwickler des Controls die Attribute richtig gesetzt

Infos www.thomasclaudiushuber.com www.trivadis.com thomas.huber@trivadis.com www.twitter.com/thomasclaudiush

FRAGEN?

Ihr Feedback ist uns wichtig

Vielen Dank!