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
Inhaltsverzeichnis
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 . . . < Warum> XAML? < /Warum> . . . 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