|
Inhalt |
6 |
|
|
Vorwort |
14 |
|
|
Danksagungen |
15 |
|
|
1 Das .NET Framework 3.0 |
16 |
|
|
1.1 Einführung |
16 |
|
|
1.1.1 Windows Presentation Foundation |
18 |
|
|
1.1.2 Windows Communication Foundation |
18 |
|
|
1.1.3 Windows Workflow Foundation |
19 |
|
|
1.1.4 Weitere Technologien und Tools |
19 |
|
|
1.2 Installation |
20 |
|
|
1.3 Installationsdateien beschaffen |
21 |
|
|
1.4 Weitergabe von .NET 3.0-Anwendungen |
25 |
|
|
1.5 Welchen Nutzen bringt die WPF? |
25 |
|
|
2 Das Programmiermodell der WPF |
30 |
|
|
2.1 Einführung |
30 |
|
|
2.1.1 Namespaces |
30 |
|
|
2.1.2 Anwendungstypen |
30 |
|
|
2.2 Aufbau eines Projekts |
32 |
|
|
2.2.1 Reine Code-Anwendungen |
33 |
|
|
2.2.2 Reine XAML-Anwendungen |
35 |
|
|
2.2.3 Gemischte XAML-Code-Anwendungen |
36 |
|
|
2.2.4 Erstellungsprozess einer WPF-Anwendung |
37 |
|
|
2.3 Nützliche Anwendungseigenschaften |
42 |
|
|
2.4 Fenster und Dialoge |
43 |
|
|
2.5 Ressourcensuche |
44 |
|
|
3 Einführung in XAML |
46 |
|
|
3.1 Einführung |
46 |
|
|
3.1.1 XAML-Mapping |
47 |
|
|
3.1.2 Schreibweise von Elementen und Attributen |
49 |
|
|
3.1.3 Namespaces |
50 |
|
|
3.2 Markup- und Spracherweiterungen |
53 |
|
|
3.2.1 Markup-Erweiterungen von XAML |
54 |
|
|
3.2.2 Markup-Erweiterungen der WPF |
55 |
|
|
3.2.3 XAML-Spracherweiterungen |
55 |
|
|
3.3 XAMLPad |
56 |
|
|
3.4 Loose XAML |
58 |
|
|
3.5 Verwendung des WPF Designers |
59 |
|
|
3.6 Dependency und Attached Properties |
59 |
|
|
3.7 Logischer und visueller Elementbaum |
61 |
|
|
3.8 XAML lesen und schreiben |
64 |
|
|
4 Ereignisbehandlung |
70 |
|
|
4.1 Grundlagen |
70 |
|
|
4.2 Code in der XAML-Datei |
71 |
|
|
4.3 Getrennte Ereignisbehandlung |
72 |
|
|
4.3.1 Anwendungsereignisse |
73 |
|
|
4.3.2 Fensterereignisse |
75 |
|
|
4.3.3 Ereignishandler dynamisch zuweisen |
76 |
|
|
4.4 Ereignisweiterleitung |
77 |
|
|
4.5 Ereignismethoden |
87 |
|
|
5 Layoutcontainer |
90 |
|
|
5.1 Grundlagen |
90 |
|
|
5.1.1 Das Panel - die Basis aller Layoutcontainer |
93 |
|
|
5.1.2 Vererbte Eigenschaften |
94 |
|
|
5.2 Übersicht der Layoutcontainer |
95 |
|
|
5.2.1 Canvas |
96 |
|
|
5.2.2 DockPanel |
101 |
|
|
5.2.3 Grid |
104 |
|
|
5.2.4 StackPanel |
112 |
|
|
5.2.5 UniformGrid |
115 |
|
|
5.2.6 VirtualizingStackPanel |
116 |
|
|
5.2.7 WrapPanel |
118 |
|
|
5.3 Ausrichtung, Ränder und Innenraumabstand |
121 |
|
|
5.3.1 Ausrichtung |
121 |
|
|
5.3.2 Randeinstellungen |
121 |
|
|
5.3.3 Codezugriff |
125 |
|
|
5.4 Komplexe Layouts erzeugen |
128 |
|
|
5.5 Benutzerdefinierte Layouts |
131 |
|
|
6 Komponenten |
138 |
|
|
6.1 Grundlagen |
138 |
|
|
6.1.1 Die Klasse Control |
139 |
|
|
6.2 Standardkomponenten |
141 |
|
|
6.3 Containerkomponenten |
144 |
|
|
6.3.1 Viewbox |
146 |
|
|
6.4 Dekorationskomponenten |
148 |
|
|
6.4.1 Border |
149 |
|
|
6.4.2 BulletDecorator |
150 |
|
|
6.5 Menükomponenten |
152 |
|
|
6.5.1 Hauptmenüs |
152 |
|
|
6.5.2 Kontextmenüs |
153 |
|
|
6.5.3 Zugriffstasten und Tastenkürzel |
153 |
|
|
6.6 Hilfskomponenten |
157 |
|
|
6.6.1 Expander |
158 |
|
|
6.6.2 Image |
160 |
|
|
6.6.3 Popup und ToolTip |
161 |
|
|
6.6.4 ProgressBar und Slider |
165 |
|
|
6.6.5 RepeatButton |
167 |
|
|
6.6.6 Separator |
169 |
|
|
6.6.7 StatusBar und ToolBar |
170 |
|
|
6.7 Komplexe Komponenten |
176 |
|
|
6.7.1 ListView und GridView |
176 |
|
|
6.7.2 InkCanvas |
178 |
|
|
6.7.3 RichTextBox |
185 |
|
|
6.7.4 TabControl |
189 |
|
|
6.7.5 TreeView |
191 |
|
|
7 2D-Grafik |
196 |
|
|
7.1 Grundlagen |
196 |
|
|
7.2 Farbverwaltung |
198 |
|
|
7.3 Grafikprimitive |
201 |
|
|
7.3.1 Einführung |
201 |
|
|
7.3.2 Pfade |
209 |
|
|
7.4 Zeichenstift |
226 |
|
|
7.4.1 Pinsel |
233 |
|
|
7.4.2 Zeichnen im Code |
247 |
|
|
7.4.3 Bilder anzeigen |
248 |
|
|
7.5 Transformationen |
249 |
|
|
7.5.1 Transformationstypen |
251 |
|
|
7.5.2 RenderTransform versus LayoutTransform |
257 |
|
|
8 3D-Grafik |
260 |
|
|
8.1 Einführung |
260 |
|
|
8.1.1 3D-Voraussetzungen |
261 |
|
|
8.2 3D in der WPF |
263 |
|
|
8.2.1 Kamera |
264 |
|
|
8.2.2 Lichtquelle |
265 |
|
|
8.2.3 Materialien |
266 |
|
|
8.2.4 3D-Modelle |
266 |
|
|
8.2.5 Grundaufbau einer 3D-Szene |
267 |
|
|
8.3 3D-Objekte anzeigen |
272 |
|
|
8.3.1 Würfel |
272 |
|
|
8.3.2 Transformation |
274 |
|
|
8.3.3 Texturen |
277 |
|
|
8.3.4 Verschiedene Seitenfarben |
280 |
|
|
8.4 Topografien |
281 |
|
|
9 Bildverarbeitung und -effekte |
286 |
|
|
9.1 Einführung |
286 |
|
|
9.2 Transparenzmasken |
290 |
|
|
9.2.1 SlideShows |
292 |
|
|
9.3 Bildformate |
297 |
|
|
9.3.1 Bilder laden, konvertieren und speichern |
297 |
|
|
9.3.2 Bilder erstellen |
299 |
|
|
9.4 Bitmap-Effekte |
301 |
|
|
10 Ressourcen |
308 |
|
|
10.1 Grundlagen |
308 |
|
|
10.1.1 WPF-Ressourcen verwenden |
308 |
|
|
10.1.2 Suchstrategie nach Ressourcen |
312 |
|
|
10.1.3 Konstanten als Ressourcen |
315 |
|
|
10.2 Statische und dynamische Ressourcen |
316 |
|
|
10.2.1 Statische Ressourcen |
316 |
|
|
10.2.2 Statische Variablen und Eigenschaften |
317 |
|
|
10.2.3 Dynamische Ressourcen |
319 |
|
|
10.2.4 Systemressourcen |
321 |
|
|
10.3 Ressourcenverzeichnisse |
323 |
|
|
10.3.1 Im Code erstellen |
323 |
|
|
10.3.2 Ressourcendateien |
325 |
|
|
10.4 Weitere Einsatzgebiete |
327 |
|
|
10.4.1 UI-Elemente als Ressource |
327 |
|
|
10.4.2 Ressourcen nachladen |
328 |
|
|
11 Stile, Trigger und Templates |
332 |
|
|
11.1 Einführung |
332 |
|
|
11.1.1 Einfache Stile |
333 |
|
|
11.1.2 Stile vererben |
339 |
|
|
11.1.3 EventSetter |
341 |
|
|
11.2 Trigger |
343 |
|
|
11.2.1 Eigenschaftstrigger |
343 |
|
|
11.2.2 MultiTrigger |
345 |
|
|
11.2.3 Ereignistrigger |
346 |
|
|
11.2.4 Datentrigger und Multidatentrigger |
349 |
|
|
11.3 Skins |
350 |
|
|
11.4 Komponentenvorlagen |
355 |
|
|
11.5 Stile und Trigger im Code verwenden |
358 |
|
|
12 Data Binding |
362 |
|
|
12.1 Einführung |
362 |
|
|
12.1.1 Funktionsweise |
363 |
|
|
12.2 Bindung an Elementeigenschaften |
365 |
|
|
12.2.1 Bindung im Code erzeugen |
365 |
|
|
12.2.2 Bindungsmodus |
366 |
|
|
12.3 Bindungsquellen |
370 |
|
|
12.3.1 Anbindung an Objekte |
371 |
|
|
12.3.2 DataContext |
379 |
|
|
12.3.3 Anbindung an Collections |
380 |
|
|
12.3.4 Anbindung an XML-Daten |
382 |
|
|
12.3.5 Anbindung an ADO-Datenquellen |
385 |
|
|
12.4 Datenvorlagen |
387 |
|
|
12.5 Wertkonvertierung, Sortieren und Filtern |
394 |
|
|
12.5.1 Wertkonvertierer |
394 |
|
|
13 Kommandos |
402 |
|
|
13.1 Einführung |
402 |
|
|
13.2 Kommandos in der WPF |
403 |
|
|
13.2.1 Vordefinierte Kommandos |
406 |
|
|
13.2.2 Command-Typen |
409 |
|
|
13.2.3 Kommandobindungen |
411 |
|
|
13.3 Benutzerdefinierte Kommandos |
414 |
|
|
14 Animationen |
420 |
|
|
14.1 Einführung |
420 |
|
|
14.2 Basisanimationen |
422 |
|
|
14.2.1 Zeitangaben |
422 |
|
|
14.2.2 Storyboards |
427 |
|
|
14.2.3 Animationen in Stilen und ControlTemplates |
434 |
|
|
14.3 KeyFrame-Animationen |
436 |
|
|
14.3.1 KeyFrame-Animationen definieren |
437 |
|
|
14.4 Path-Animationen |
443 |
|
|
14.5 Animationen im Code erzeugen |
445 |
|
|
14.5.1 Basisanimationen erstellen |
445 |
|
|
14.5.2 KeyFrame-Animationen erstellen |
448 |
|
|
14.5.3 Auf Ereignisse reagieren |
449 |
|
|
14.6 Clock-Animationen |
452 |
|
|
15 Textdokumente und -darstellung |
456 |
|
|
15.1 Einführung |
456 |
|
|
15.2 Textverarbeitung und -anzeige in der WPF |
458 |
|
|
15.3 Allgemeine Texteigenschaften |
459 |
|
|
15.3.1 Schrifteigenschaften |
459 |
|
|
15.3.2 Textumbrüche |
461 |
|
|
15.3.3 Leerzeichen |
462 |
|
|
15.3.4 Textbeschneidungen |
463 |
|
|
15.3.5 Texteffekte |
463 |
|
|
15.3.6 Textdekorationen |
465 |
|
|
15.4 Flow-Dokumente |
466 |
|
|
15.4.1 Anzeige |
466 |
|
|
15.4.2 Inline-Elemente |
468 |
|
|
15.4.3 Blockelemente |
472 |
|
|
15.5 Annotationen |
476 |
|
|
15.6 XPS-Dokumente |
480 |
|
|
16 Eigene Komponenten erstellen |
484 |
|
|
16.1 Einführung |
484 |
|
|
16.1.1 Einführung in das Komponentenmodell |
484 |
|
|
16.1.2 Komponenten verwalten |
486 |
|
|
16.1.3 Komponenten von FrameworkElement ableiten |
488 |
|
|
16.2 Dependency Properties definieren |
492 |
|
|
16.2.1 Registrieren der Eigenschaft |
493 |
|
|
16.2.2 Eigenschaft definieren |
494 |
|
|
16.3 Attached Properties |
497 |
|
|
16.4 Ereignisse |
500 |
|
|
16.4.1 Registrieren des Ereignisses |
500 |
|
|
16.4.2 Ereignis deklarieren |
500 |
|
|
16.4.3 Ereignis auslösen |
501 |
|
|
16.5 User Controls |
504 |
|
|
16.6 Custom Controls |
507 |
|
|
17 Navigations- und XAML Browser-Anwendungen |
512 |
|
|
17.1 Einführung |
512 |
|
|
17.2 Navigationsanwendungen |
512 |
|
|
17.2.1 Navigationsunterstützung |
513 |
|
|
17.2.2 Hyperlinks |
513 |
|
|
17.2.3 Seiten |
514 |
|
|
17.2.4 Navigation über Frames |
517 |
|
|
17.2.5 Strukturierte Navigation |
520 |
|
|
17.3 XAML Browser-Anwendungen (XBAP) |
524 |
|
|
18 Interoperabilität |
528 |
|
|
18.1 Grundlagen |
528 |
|
|
18.2 WPF hostet Windows Forms |
531 |
|
|
18.2.1 Verwendung in XAML |
532 |
|
|
18.2.2 WPF hostet ActiveX |
535 |
|
|
18.3 Windows Forms hostet WPF |
538 |
|
|
18.4 Interoperabilität mit Win32 und der MFC |
540 |
|
|
19 UI Automation |
542 |
|
|
19.1 Einführung |
542 |
|
|
19.2 Eine Windows-Anwendung steuern |
543 |
|
|
19.2.1 Anwendung starten |
544 |
|
|
19.2.2 Verbindung zur Anwendung aufnehmen |
544 |
|
|
19.2.3 Elemente der Benutzeroberfläche auslesen |
544 |
|
|
19.2.4 Informationen zu den Elementen abfragen |
546 |
|
|
19.2.5 Automation Pattern |
547 |
|
|
19.2.6 Ereignishandler |
549 |
|
|
19.3 Automation Provider |
553 |
|
|
19.3.1 Automationseigenschaften |
553 |
|
|
20 Expression Blend |
558 |
|
|
20.1 Einführung |
558 |
|
|
20.2 Erste Schritte |
559 |
|
|
20.2.1 Oberfläche anpassen |
560 |
|
|
20.2.2 Projektverwaltung |
561 |
|
|
20.2.3 ToolBox |
564 |
|
|
20.2.4 Layoutcontainer verwenden |
565 |
|
|
20.2.5 Komponenten einfügen und bearbeiten |
573 |
|
|
20.3 Stile erzeugen und anwenden |
574 |
|
|
20.3.1 Stil erzeugen |
575 |
|
|
20.3.2 Stil anwenden |
576 |
|
|
20.4 Datenbindungen |
577 |
|
|
20.4.1 Anbindung an Eigenschaften |
577 |
|
|
20.4.2 Anbindung an eine XML-Datenquelle |
577 |
|
|
20.5 Animationen |
581 |
|
|
20.6 Zusammenarbeit mit dem Visual Studio |
584 |
|
|
Index |
588 |
|
|
Mehr eBooks bei www.ciando.com |
0 |
|