E-Book, Deutsch, 1218 Seiten
Reihe: Rheinwerk Computing
Huber Windows Presentation Foundation
5. Auflage 2019
ISBN: 978-3-8362-7203-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Das umfassende Handbuch
E-Book, Deutsch, 1218 Seiten
Reihe: Rheinwerk Computing
ISBN: 978-3-8362-7203-2
Verlag: Rheinwerk
Format: EPUB
Kopierschutz: 0 - No protection
Alles, was Sie über den Standard von Microsoft zur oberflächennahen Programmierung wissen müssen, finden Sie in unserem umfassenden WPF-Kompendium. Nach einer Einführung in das Framework und die Beschreibungssprache XAML erfahren Sie hier auf über 1.200 Seiten, wie Sie mit der WPF grafische Benutzeroberflächen, 2D- und 3D-Grafiken sowie Animationen entwickeln oder Audio- und Videodateien einbinden. Alle Themen werden verständlich und anschaulich anhand realistischer Anwendungsbeispiele dargestellt, so dass Ihnen die Umsetzung eigener WPF-Applikationen problemlos gelingen wird.
Das Buch richtet sich an Entwickler mit Vorkenntnissen in C# und .NET und eignet sich sowohl zum Einstieg in die Thematik als auch als Nachschlagewerk für die tägliche Arbeit. Die fünfte Auflage ist aktuell zu .NET Core 3, NET 4.8 und Visual Studio 2019.
Aus dem Inhalt:
- Programmiermodell
- Einführung in XAML
- Logical & Visual Tree
- Controls & Layout
- Dependency Properties
- Routed Events & Commands
- Ressourcen
- Styles, Trigger & Templates
- Data Binding
- 2D- & 3D-Grafik, Animationen
- Audio & Video
- Text & Dokumente
- ActiveX & DirectX
- Windows Forms/Win32
- Universal Windows Apps
Thomas Claudius Huber ist Senior-Architekt, Entwickler, Berater und Trainer für Microsoft-Technologien. Zudem ist er Microsoft Certified Trainer und Microsoft Certified Professional Developer. Als Diplom-Wirtschaftsinformatiker spezialisierte sich Thomas Claudius Huber auf die Konzeption und Realisierung von mehrschichtigen Unternehmensanwendungen mit .NET. Die Entwicklung der Präsentationsschicht faszinierte ihn dabei schon immer. Deshalb setzt er sich seit der ersten Stunde mit GUI-Technologien wie der Windows Presentation Foundation (WPF) und Silverlight auseinander. Derzeit arbeitet Thomas Claudius Huber als Senior Consultant beim Schweizer Unternehmen Trivadis AG. Auf seiner Website bloggt er zum Thema .NET.
Autoren/Hrsg.
Weitere Infos & Material
Materialien zum Buch ... 25 Vorwort ... 27 Hinweise zum Buch ... 31
TEIL I WPF-Grundlagen und -Konzepte ... 41 1. Einführung in die WPF ... 43 1.1 ... Die WPF und .NET ... 43 1.2 ... Von Windows 1.0 zur Windows Presentation Foundation ... 50 1.3 ... Die Architektur der WPF ... 53 1.4 ... Konzepte ... 59 1.5 ... Zusammenfassung ... 74 2. Das Programmiermodell ... 77 2.1 ... Grundlagen der WPF ... 78 2.2 ... Projektvorlagen in Visual Studio 2019 ... 87 2.3 ... Windows-Projekte mit Visual Studio 2019 ... 92 2.4 ... Application, Dispatcher und Window ... 109 2.5 ... Zusammenfassung ... 139 3. XAML ... 143 3.1 ... XAML? ... 143 3.2 ... Elemente und Attribute ... 145 3.3 ... Namespaces ... 147 3.4 ... Properties in XAML setzen ... 155 3.5 ... Type-Converter ... 160 3.6 ... Markup-Extensions ... 169 3.7 ... XAML-Spracherweiterungen ... 175 3.8 ... Collections in XAML ... 181 3.9 ... XamlReader und XamlWriter ... 185 3.10 ... Zusammenfassung ... 189 4. Der Logical und der Visual Tree ... 193 4.1 ... Zur Veranschaulichung verwendete Komponenten ... 196 4.2 ... Der Logical Tree ... 199 4.3 ... Der Visual Tree ... 220 4.4 ... Der Live Visual Tree in Visual Studio 2019 ... 235 4.5 ... Zusammenfassung ... 240 5. Controls ... 243 5.1 ... Die Klasse »Control« ... 246 5.2 ... ContentControls ... 248 5.3 ... ItemsControls ... 271 5.4 ... Controls zur Textdarstellung und -bearbeitung ... 302 5.5 ... Datum-Controls ... 307 5.6 ... Range-Controls ... 312 5.7 ... Sonstige, einfachere Controls ... 315 5.8 ... Zusammenfassung ... 321 6. Layout ... 323 6.1 ... Der Layoutprozess ... 323 6.2 ... Layoutfunktionalität von Elementen ... 333 6.3 ... Panels ... 354 6.4 ... Das Layout von FriendStorage ... 385 6.5 ... Zusammenfassung ... 401 7. Dependency Properties ... 403 7.1 ... Die Keyplayer ... 404 7.2 ... Dependency Properties ... 406 7.3 ... Attached Properties ... 431 7.4 ... Zusammenfassung ... 441 8. Routed Events ... 445 8.1 ... Die Keyplayer ... 446 8.2 ... Eigene Routed Events ... 453 8.3 ... Die »RoutedEventArgs« im Detail ... 466 8.4 ... Routed Events der WPF ... 471 8.5 ... Zusammenfassung ... 485 9. Commands ... 487 9.1 ... Die Keyplayer ... 488 9.2 ... Eigene Commands mit »ICommand« ... 490 9.3 ... Die »wahren« Keyplayer ... 495 9.4 ... Eigene Commands mit der Klasse »RoutedUICommand« ... 504 9.5 ... Built-in-Commands der WPF ... 514 9.6 ... Das Model-View-ViewModel-Pattern (MVVM) ... 523 9.7 ... Zusammenfassung ... 531
TEIL II Fortgeschrittene Techniken ... 533
10. Ressourcen ... 535 10.1 ... Logische Ressourcen ... 535 10.2 ... Binäre Ressourcen ... 558 10.3 ... Zusammenfassung ... 571
11. Styles, Trigger und Templates ... 573 11.1 ... Styles ... 573 11.2 ... Trigger ... 588 11.3 ... Templates ... 603 11.4 ... Styles, Trigger und Templates in FriendStorage ... 637 11.5 ... Zusammenfassung ... 645
12. Daten ... 647 12.1 ... Data Binding ... 648 12.2 ... Datenquellen eines Data Bindings ... 666 12.3 ... Data Binding an Collections ... 692 12.4 ... Benutzereingaben validieren ... 716 12.5 ... Das DataGrid ... 737 12.6 ... Daten mit DataTemplates visualisieren ... 762 12.7 ... Drag-&-Drop ... 767 12.8 ... Daten in FriendStorage ... 771 12.9 ... Zusammenfassung ... 787
TEIL III Reichhaltige Medien und eigene Controls ... 789
13. 2D-Grafik ... 791 13.1 ... Shapes ... 792 13.2 ... Geometries ... 804 13.3 ... Drawings ... 816 13.4 ... Programmierung des Visual Layers ... 823 13.5 ... Brushes ... 828 13.6 ... Cached Compositions ... 841 13.7 ... Effekte ... 848 13.8 ... Bitmaps ... 863 13.9 ... Zusammenfassung ... 866
14. 3D-Grafik ... 869 14.1 ... 3D im Überblick ... 870 14.2 ... Die Objekte einer 3D-Szene im Detail ... 873 14.3 ... Benutzerinteraktion mit 3D-Objekten ... 903 14.4 ... Komplexe 3D-Objekte ... 908 14.5 ... Zusammenfassung ... 913
15. Animationen ... 915 15.1 ... Animationsgrundlagen ... 916 15.2 ... Basis-Animationen in C# ... 924 15.3 ... Basis-Animationen in XAML ... 943 15.4 ... Keyframe-Animationen ... 955 15.5 ... Pfad-Animationen ... 963 15.6 ... Easing Functions ... 966 15.7 ... Low-Level-Animationen ... 976 15.8 ... Zusammenfassung ... 980
16. Audio und Video ... 981 16.1 ... Audio (.wav) mit »SoundPlayerAction« und »SoundPlayer« ... 981 16.2 ... Audio und Video mit »MediaPlayer« (C#) ... 985 16.3 ... Audio und Video mit »MediaElement« (XAML) ... 991 16.4 ... Zusammenfassung ... 1001
17. Eigene Controls ... 1003 17.1 ... Custom Controls ... 1004 17.2 ... Custom Control mit Visual States ... 1035 17.3 ... User Control ... 1042 17.4 ... Alternativen zu Custom Control und User Control ... 1049 17.5 ... Zusammenfassung ... 1056
18. Text und Dokumente ... 1059 18.1 ... Text ... 1060 18.2 ... Das Text-Rendering beeinflussen ... 1075 18.3 ... Flow-Dokumente ... 1080 18.4 ... Annotationen ... 1091 18.5 ... XPS-Dokumente (Fixed-Dokumente) ... 1096 18.6 ... Drucken ... 1107 18.7 ... Dokumente in FriendStorage ... 1112 18.8 ... Zusammenfassung ... 1119
TEIL IV Interoperabilität und Apps ... 1121
19. Standard-Dialoge, Windows Taskbar und mehr ... 1123 19.1 ... Standard-Dialoge ... 1123 19.2 ... Integration in die Windows Taskbar ... 1125 19.3 ... Deployment ... 1140 19.4 ... Zusammenfassung ... 1141
20. Interoperabilität ... 1143 20.1 ... Unterstützte Szenarien und Grenzen ... 1144 20.2 ... Windows Forms ... 1146 20.3 ... ActiveX in WPF ... 1159 20.4 ... Win32 ... 1162 20.5 ... Zusammenfassung ... 1176
21. Universal Windows Apps und WinUI ... 1177 21.1 ... Einführung ... 1177 21.2 ... Die FriendViewer-App erstellen ... 1182 21.3 ... Zusammenfassung ... 1194 Index ... 1195
Hinweise zum Buch
Bevor es losgeht, finden Sie hier noch ein paar Hinweise dazu, wie Sie am besten mit diesem Buch arbeiten. Auf den folgenden Seiten finden Sie kurze Inhaltsangaben zu allen Kapiteln und Informationen zu den verwendeten Beispielen: wo Sie diese finden und welche Systemvoraussetzungen notwendig sind, um sie nachzuvollziehen.
Für wen ist dieses Buch gedacht?
Um den meisten Nutzen aus diesem Buch zu ziehen, sollten Sie über eine gute Portion an C#-Know-how und über etwas Wissen rund um .NET verfügen. Fragen zu Events, Delegates, anonymen Methoden, Lambda Expressions, Auto-implemented Properties, async und await sollten Sie nicht gleich in Verlegenheit bringen. Sind Sie beim Thema .NET oder C# etwas unsicher, empfehle ich Ihnen, vorab ein C#-Buch zu lesen. Grundkenntnisse in XML sind für das vorliegende Buch von Vorteil, allerdings nicht zwingend erforderlich.
Das Buch richtet sich an .NET-Entwickler, die Desktop-Anwendungen für Windows mit der Windows Presentation Foundation umsetzen möchten. Es eignet sich sowohl für WPF-Einsteiger als auch für leicht fortgeschrittene WPF-Entwickler.
Seit Windows 10 lassen sich neben der klassischen Desktop-Anwendung auch die Universal Windows Apps entwickeln. WPF-Anwendungen funktionieren im Gegensatz zu den Universal Windows Apps auch unter älteren Windows-Versionen. Allerdings lassen sich WPF-Anwendungen nur auf dem Desktop von Windows ausführen. Die Universal Windows Apps laufen dagegen neben dem Desktop auf verschiedensten Umgebungen: Xbox, HoloLens oder sogar auf dem Raspberry Pi.
Doch wenn Universal Windows Apps auch auf dem Desktop laufen, warum sollten Sie dann die WPF einsetzen? Die WPF ist den Universal Windows Apps nach wie vor in einigen Teilen überlegen, da das Framework deutlich mehr Möglichkeiten bietet. Somit werden auch heute mächtige Geschäftsanwendungen, die als lokale Applikation unter Windows laufen sollen, mit der WPF umgesetzt. Beispielsweise ist Visual Studio 2019 eine WPF-Anwendung, und die typische datenzentrische Geschäftsanwendung wird es auch sein.
Wenn Sie also eine Anwendung für den Desktop bauen möchten, sind Sie hier genau richtig. Möchten Sie stattdessen lieber eine Universal Windows App entwickeln, in der Sie wie auch bei der WPF XAML und C# einsetzen können, sind Sie hier auch nicht falsch, da viele Konzepte gleich sind. Zudem finden Sie im letzten Kapitel dieses Buchs eine Einführung in die Entwicklung von Universal Windows Apps.
Im vorliegenden Buch erhalten Sie neben dem Wissen, das Sie zum Entwickeln einer WPF-Anwendung benötigen, reichlich Hintergrundinformationen über die Konzepte der WPF: Dazu gehören unter anderem die Extensible Application Markup Language (XAML), Dependency Properties, Routed Events, Commands, Ressourcen oder Logical und Visual Trees. Für einfache Applikationen ist die Kenntnis dieser Konzepte nicht immer erforderlich, für die Entwicklung Ihrer umfangreichen Wunschanwendung ist sie allerdings eine wichtige Voraussetzung. Erst mit diesen Konzepten im Hinterkopf werden Sie in der Lage sein, mit der WPF erfolgreich komplexe Anwendungen zu entwickeln.
Das vorliegende Buch richtet sich also an Entwickler und nicht an grafische Designer. Ein Designer kann mithilfe dieses Buchs zwar den XAML-Code nachvollziehen, den seine Tools wie Blend generieren, aber eben nur dann, wenn er auch die Grundlagen der .NET-Programmierung und C# beherrscht. Haben Sie Webseiten entwickelt und dazu Tools wie FrontPage oder Dreamweaver eingesetzt, werden Sie bestimmt die Erfahrung gemacht haben, dass für komplexere Fälle das Programm nicht den gewünschten Output liefert und Sie das HTML-Dokument manuell editieren müssen. Ebenso verhält es sich mit XAML. Obwohl es viele Tools gibt, die XAML generieren, werden Sie bestimmte Dinge in XAML weiterhin »von Hand« erstellen oder zumindest anpassen müssen, um zu Ihrem Ziel zu kommen.
Der Aufbau des Buches
Das Buch besteht aus 21 Kapiteln, die sich in vier Teile gruppieren lassen:
-
WPF-Grundlagen und Konzepte
In Teil I lernen Sie die Grundlagen der WPF kennen. Dazu gehören die wichtigsten Klassen, XAML, Controls, Layout und Konzepte der WPF, wie Dependency Properties, Routed Events oder Commands. -
Fortgeschrittene Techniken
Fortgeschrittene Techniken werden in Kapitel 10 bis Kapitel 12 betrachtet. Dazu gehören neben Ressourcen die in der WPF existierenden Styles, Trigger und Templates. Mit Letzteren lässt sich das Aussehen von Controls neu definieren. In dieser Gruppe erfahren Sie auch, wie die WPF mit Daten umgeht. In diesem Zusammenhang gehe ich speziell auf das Data Binding ein.-
Kapitel 10: Ressourcen
-
Kapitel 11: Styles, Trigger und Templates
-
Kapitel 12: Daten
-
-
Reichhaltige Medien und eigene Controls
In Teil III lernen Sie, wie Sie mit der WPF 2D- und 3D-Grafiken darstellen und auch dynamisch erzeugen. Sie lernen hier alles, was Sie über das in die WPF integrierte Animationssystem, über die Audio/Video-Unterstützung und über Texte und Dokumente wissen müssen. Die Dokumente in der WPF sind gleichzeitig auch der Schlüssel zum Drucken. Sie lernen aber nicht nur die Medien kennen, sondern erfahren auch, wie Sie eigene Controls entwickeln.-
Kapitel 13: 2D-Grafik
-
Kapitel 14: 3D-Grafik
-
Kapitel 15: Animationen
-
Kapitel 16: Audio und Video
-
Kapitel 17: Eigene Controls
-
Kapitel 18: Text und Dokumente
-
-
Interoperabilität und Apps
In Teil IV erfahren Sie, wie Sie in Ihrer WPF-Anwendung einen SaveFileDialog nutzen, Ihre Anwendung automatisieren und verteilen und wie Sie die Möglichkeiten der Windows Taskbar in Ihrer Applikation nutzen. Sie lernen auch, wie Sie in Ihrer WPF-Anwendung alte Technologien mittels Interoperabilität einbinden. Zudem erhalten Sie in Teil IV eine Einführung in die Entwicklung von Universal Windows Apps in Windows 10.-
Kapitel 19: Standard-Dialoge, Windows Taskbar und mehr
-
Kapitel 20: Interoperabilität
-
Kapitel 21: Universal Windows Apps und WinUI
-
Der Inhalt der einzelnen Kapitel
-
Kapitel 1, »Einführung in die WPF«
Wir beginnen mit einem Überblick über die WPF. Sie erfahren, wie sich die WPF ins .NET Framework eingliedert. Nach einem Blick auf die Geschichte der Windows-Programmierung lernen Sie die technische...