Thomas Theis
Einstieg in WPFGrundlagen und Praxis
Auf einen Blick
1 Einführung .......................................................................... 13
2 XAML und WPF .................................................................. 19
3 Layout ................................................................................. 29
4 Steuerelemente ................................................................... 53
5 Ereignisse und Kommandos ............................................... 133
6 Anwendungen ..................................................................... 155
7 Vorlagen .............................................................................. 193
8 Daten .................................................................................. 217
9 2D-Grafik ............................................................................ 241
10 3D-Grafik ............................................................................ 289
11 Animation ........................................................................... 333
12 Audio und Video ................................................................. 371
13 Dokumente und Drucken ................................................... 397
14 Interoperabilität ................................................................. 431
Inhalt
1 Einführung ..................................................................................... 13
1.1 Vorteile der WPF .................................................................... 131.1.1 Grafik in der WPF ...................................................... 14
1.2 Aufbau des Buchs ................................................................... 141.3 Visual Studio 2010 ................................................................. 15
1.3.1 Ein neues Projekt ...................................................... 161.4 Kaxaml ................................................................................... 171.5 XAML und C# bzw. VB ........................................................... 171.6 Danksagung ............................................................................ 17
2 XAML und WPF ........................................................................... 19
2.1 Dokumentstruktur .................................................................. 192.2 Property Elements .................................................................. 212.3 Dependency Properties ........................................................... 212.4 Attached Properties ................................................................ 232.5 Markup Extensions ................................................................. 242.6 Routed Events ........................................................................ 252.7 Attached Events ..................................................................... 27
3 Layout ............................................................................................ 29
3.1 Canvas .................................................................................... 303.1.1 Positionierung ........................................................... 303.1.2 Elemente neu erzeugen ............................................. 323.1.3 Layout-Hierarchie ...................................................... 33
3.2 StackPanel .............................................................................. 353.2.1 Elemente neu erzeugen ............................................. 36
3.3 WrapPanel .............................................................................. 373.3.1 Elemente neu erzeugen ............................................. 383.3.2 Vertikale Orientierung ............................................... 38
3.4 DockPanel .............................................................................. 393.4.1 DockPanel in Hierarchie ............................................ 403.4.2 Elemente neu erzeugen ............................................. 41
3.5 Grid ........................................................................................ 423.5.1 Elemente neu erzeugen ............................................. 433.5.2 Elemente über mehrere Zellen ................................... 45
5
Inhalt
3.5.3 Größe der Zellen festlegen ........................................ 463.5.4 Die Größe der Zellen flexibel gestalten ...................... 47
3.6 Layout-Kombination ............................................................... 49
4 Steuerelemente ............................................................................ 53
4.1 Allgemeiner Aufbau ................................................................ 534.1.1 Größe, Schrift, Farbe, Bedienung per Tastatur ............ 544.1.2 Sichtbarkeit, Bedienbarkeit ....................................... 564.1.3 Elemente mit EventHandler neu erzeugen,
Elemente löschen ...................................................... 574.1.4 Padding, Innenabstand .............................................. 594.1.5 Margin, Außenabstand .............................................. 614.1.6 Alignment, Ausrichtung ............................................ 62
4.2 Schalter .................................................................................. 644.2.1 Button ...................................................................... 644.2.2 RepeatButton ............................................................ 654.2.3 ToggleButton und CheckBox ..................................... 664.2.4 RadioButton .............................................................. 684.2.5 Auswahl einstellen .................................................... 71
4.3 Text und Beschriftung ............................................................. 714.3.1 Label ......................................................................... 714.3.2 TextBlock .................................................................. 734.3.3 ToolTip ..................................................................... 764.3.4 TextBox ..................................................................... 774.3.5 PasswordBox ............................................................. 804.3.6 RichTextBox .............................................................. 80
4.4 Auswahl ................................................................................. 814.4.1 ListBox, Einzel-Auswahl ............................................ 824.4.2 ListBox, Mehrfach-Auswahl ....................................... 854.4.3 ComboBox ................................................................ 884.4.4 TreeView .................................................................. 90
4.5 Zahlenwerte ........................................................................... 974.5.1 ProgressBar ............................................................... 974.5.2 Slider ........................................................................ 1004.5.3 ScrollBar ................................................................... 103
4.6 Container ............................................................................... 1044.6.1 Border ....................................................................... 1044.6.2 GroupBox ................................................................. 1074.6.3 Expander ................................................................... 1084.6.4 TabControl ................................................................ 111
6
Inhalt
4.7 Menüs und Leisten ................................................................. 1134.7.1 Hauptmenü ............................................................... 1134.7.2 Kontextmenü ............................................................ 1164.7.3 Symbolleiste .............................................................. 1184.7.4 Statusleiste ................................................................ 121
4.8 Datum .................................................................................... 1224.8.1 Calendar .................................................................... 1224.8.2 DatePicker ................................................................ 126
4.9 Weitere Elemente ................................................................... 1274.9.1 Image ........................................................................ 1284.9.2 WebBrowser ............................................................. 130
5 Ereignisse und Kommandos ...................................................... 133
5.1 Tastatur .................................................................................. 1335.1.1 Anzeige der Tastaturinformationen ............................ 1335.1.2 Steuerung durch Tasten ............................................. 135
5.2 Maus ...................................................................................... 1365.2.1 Anzeige der Mausinformationen ................................ 136
5.3 Eingabestift ............................................................................ 1395.4 Touchscreen ........................................................................... 1415.5 Kommandos ........................................................................... 145
5.5.1 Eingebaute Kommandos ............................................ 1465.5.2 Kommandos mit Eingabegesten verbinden ................ 1495.5.3 Eigene Kommandos ................................................... 150
6 Anwendungen ............................................................................... 155
6.1 Allgemeiner Aufbau ................................................................ 1556.1.1 Einfache Anwendung ................................................. 1556.1.2 Anwendung mit Steuerelement ................................. 1576.1.3 Reihenfolge der Ereignisse ......................................... 1586.1.4 Aufruf von der Kommandozeile ................................. 161
6.2 Ressourcen ............................................................................. 1646.2.1 Physische Ressourcen ................................................ 1646.2.2 Logische Ressourcen ................................................. 166
6.3 Fenster ................................................................................... 1696.3.1 Eigenschaften und Ereignisse von Fenstern ................ 1696.3.2 Eigene Dialogfelder ................................................... 173
6.4 Navigation mit Seiten ............................................................. 1756.4.1 Eine Reihe von Seiten ................................................ 176
7
Inhalt
6.4.2 Frame mit Unterseiten .............................................. 1806.5 Gadgets .................................................................................. 1826.6 Browseranwendung ................................................................ 1846.7 Ribbonanwendung ................................................................. 186
7 Vorlagen ........................................................................................ 193
7.1 Styles ..................................................................................... 1937.1.1 Benannte Styles ......................................................... 1947.1.2 Typ-Styles ................................................................. 1977.1.3 Vererbung benannter Styles ...................................... 1987.1.4 Vererbung von Typ-Styles ......................................... 1997.1.5 Verwandte Steuerelement-Typen .............................. 2007.1.6 EventSetter ............................................................... 202
7.2 Property Trigger ..................................................................... 2047.2.1 Einfache Property Trigger .......................................... 2047.2.2 Multi-Trigger ............................................................ 205
7.3 Control Templates .................................................................. 2077.3.1 Ein erstes Control Template ...................................... 2077.3.2 Control Template mit Trigger .................................... 2087.3.3 Control Template mit Bindung .................................. 2097.3.4 Control Template in Typ-Style ................................... 211
7.4 Skins ...................................................................................... 212
8 Daten .............................................................................................. 217
8.1 Datenbindung ........................................................................ 2178.1.1 Setzen und Lösen einer Bindung ............................... 2178.1.2 Richtung und Zeitpunkt einer Bindung ...................... 219
8.2 Validierung ............................................................................. 2228.3 Datenquellen ......................................................................... 224
8.3.1 Ein Objekt als Datenquelle ........................................ 2248.3.2 Kontext einer Datenbindung ..................................... 2268.3.3 Auflistung von Objekten ........................................... 2278.3.4 Object Data Provider ................................................ 2298.3.5 Datenbank ................................................................ 230
8.4 DataGrid ................................................................................ 2328.4.1 Einfacher Aufbau ....................................................... 2328.4.2 Standard-Einstellungen ............................................. 2348.4.3 Weitere Spaltentypen ............................................... 235
8
Inhalt
8.5 DataTemplates ....................................................................... 2378.6 DataTrigger ............................................................................ 238
9 2D-Grafik ....................................................................................... 241
9.1 Shapes .................................................................................... 2419.1.1 Rechtecke und Ellipsen .............................................. 2429.1.2 Linie .......................................................................... 2449.1.3 Polygon und Polylinie ................................................ 2459.1.4 Linienende ................................................................ 247
9.2 Geometrien ............................................................................ 2489.2.1 Einfache geometrische Formen .................................. 2499.2.2 Kombinierte Geometrien ........................................... 2519.2.3 Pfadgeometrien für komplexe Formen ....................... 2539.2.4 Pfadgeometrie in Pfadmarkupsyntax .......................... 2579.2.5 Geometriegruppe ...................................................... 258
9.3 Drawings ................................................................................ 2599.4 Pinsel ..................................................................................... 262
9.4.1 SolidColorBrush ......................................................... 2629.4.2 LinearGradientBrush .................................................. 2639.4.3 RadialGradientBrush .................................................. 2659.4.4 ImageBrush ............................................................... 267
9.5 Transformationen ................................................................... 2709.5.1 RotateTransform mit RenderTransform ...................... 2719.5.2 RotateTransform mit LayoutTransform ....................... 2739.5.3 ScaleTransform .......................................................... 2749.5.4 SkewTransform .......................................................... 2769.5.5 TranslateTransform .................................................... 2779.5.6 TransformGroup ........................................................ 278
9.6 Transparenz ............................................................................ 2809.6.1 Transparenz mit Opacity und Background ................. 2809.6.2 Maskierung mit OpacityMask .................................... 2819.6.3 Ausstanzung mit Clip ................................................. 283
9.7 Effekte .................................................................................... 2849.8 Verzierungen .......................................................................... 286
10 3D-Grafik ....................................................................................... 289
10.1 Allgemeiner Aufbau ................................................................ 28910.1.1 Koordinatensystem ................................................... 28910.1.2 Kamera, Licht und Material ....................................... 291
9
Inhalt
10.1.3 Dreieck in XAML ....................................................... 29110.1.4 Ein Dreieck in Programmcode erzeugen .................... 29410.1.5 Würfel ...................................................................... 29610.1.6 Gemeinsame Punkte ................................................. 298
10.2 Kamera ................................................................................... 29910.2.1 Perspektivische Kamera ............................................. 29910.2.2 Lage der Kamera ....................................................... 301
10.3 Licht ....................................................................................... 30210.4 Modelle ................................................................................. 306
10.4.1 Gruppe von 3D-Körpern ........................................... 30610.4.2 3D-Körper mit Ereignissen ........................................ 30910.4.3 Gruppe von 3D-Körpern mit Ereignissen ................... 31010.4.4 3D-Körper mit Oberflächengestaltung ....................... 311
10.5 Material und Textur ................................................................ 31310.5.1 Material .................................................................... 31410.5.2 Textur ....................................................................... 316
10.6 Transformationen ................................................................... 31910.6.1 ScaleTransform3D ..................................................... 31910.6.2 TranslateTransform3D ............................................... 32110.6.3 RotateTransform3D ................................................... 32210.6.4 Transform3DGroup ................................................... 32610.6.5 Transform3DGroup aus Rotationen ........................... 327
10.7 Eine 3D-Landschaft ................................................................ 329
11 Animation ...................................................................................... 333
11.1 Allgemeiner Aufbau ................................................................ 33411.1.1 Einfache DoubleAnimation ........................................ 33411.1.2 DoubleAnimation, weitere Eigenschaften ................. 33711.1.3 PointAnimation ......................................................... 340
11.2 Storyboard ............................................................................. 34111.2.1 Storyboard als Ressource ........................................... 34111.2.2 Storyboard per Programmcode .................................. 34311.2.3 Storyboard steuern .................................................... 34511.2.4 Animierte Transformation ......................................... 34711.2.5 ColorAnimation ......................................................... 349
11.3 Event Trigger .......................................................................... 35011.3.1 Event Trigger in Element ........................................... 35011.3.2 Event Trigger und Ressourcen ................................... 351
10
Inhalt
11.3.3 Event Trigger in Style ................................................. 35211.3.4 Event Trigger zur Steuerung ....................................... 354
11.4 Animierte 3D-Rotation ........................................................... 35611.5 Keyframes ............................................................................... 359
11.5.1 Keyframes für Double ................................................ 35911.5.2 Keyframes für Color ................................................... 36211.5.3 KeyFrames für String ................................................. 363
11.6 Easing Functions ..................................................................... 36411.7 Pfadanimationen .................................................................... 368
12 Audio und Video .......................................................................... 371
12.1 Audio ..................................................................................... 37112.1.1 SoundPlayer in Programmcode .................................. 37112.1.2 SystemSound ............................................................. 37412.1.3 SoundPlayer in XAML ............................................... 37512.1.4 MediaPlayer für Audio .............................................. 37512.1.5 MediaElement für Audio ........................................... 378
12.2 Video ..................................................................................... 38012.2.1 MediaElement für Video ........................................... 380
12.3 Sprachausgabe ........................................................................ 38112.3.1 Text ausgeben ........................................................... 38112.3.2 Text zusammensetzen ............................................... 386
12.4 Spracheingabe ........................................................................ 39012.4.1 Externe Spracherkennung .......................................... 39112.4.2 Interne Spracherkennung .......................................... 39212.4.3 Steuerung per Spracherkennung ................................ 394
13 Dokumente und Drucken ........................................................... 397
13.1 FlowDocument ....................................................................... 39713.1.1 FlowDocumentReader ............................................... 39813.1.2 Block-Typ Absatz ....................................................... 40013.1.3 Block-Typ Abschnitt .................................................. 40213.1.4 Block-Typ Liste .......................................................... 40313.1.5 Block-Typ Tabelle ...................................................... 40713.1.6 Block-Typ Steuerelement-Container .......................... 41013.1.7 Inlines ....................................................................... 41213.1.8 Inline-Typ Figure ....................................................... 417
11
Inhalt
13.1.9 FlowDocumentScrollViewer ...................................... 41913.1.10 FlowDocumentPageViewer ....................................... 42013.1.11 RichTextBox .............................................................. 420
13.2 FixedDocument ...................................................................... 42413.3 Drucken ................................................................................. 426
14 Interoperabilität .......................................................................... 431
14.1 Windows Forms in WPF ......................................................... 43114.1.1 Windows Forms-Steuerelemente in WPF .................. 43114.1.2 Windows Forms-Standard-Dialogfelder in WPF.......... 432
14.2 WPF in Windows Forms ......................................................... 43614.2.1 WPF-Steuerelemente in Windows Forms .................. 436
14.3 MS Office in WPF ................................................................... 43814.3.1 Excel-Mappe ............................................................. 43914.3.2 Word-Dokument ...................................................... 441
Index ........................................................................................................ 445
12
In diesem ersten Kapitel werden einige grundlegende Begriffe der WPF, der Aufbau des Buchs und die Arbeit mit dem Visual Studio von Microsoft erläutert.
1 Einführung
WPF steht für Windows Presentation Foundation. Es handelt sich dabei um eine2006 gänzlich neu eingeführte Bibliothek von Klassen, die zur Gestaltung vonOberflächen und zur Integration von Multimedia-Komponenten und Animatio-nen dient. Sie vereint die Vorteile von DirectX, Windows Forms, Adobe Flash,HTML und CSS.
1.1 Vorteile der WPF
Der Umstieg auf diese neue Technologie geschieht nur langsam. In der Praxis set-zen Entwickler häufig noch den Vorgänger der WPF, Windows Forms, ein. In die-sem Abschnitt werden einige Eigenschaften und Vorteile der WPF dargestellt.
Die WPF ermöglicht eine verbesserte Gestaltung von Oberflächen. Layout, 3D-Grafiken, Sprachintegration, Animation, Datenzugriff und vieles mehr basierenauf einer einheitlichen Technik. Der Benutzer kann außerdem die Bedienung die-ser Oberflächen schnell und intuitiv erlernen.
Einzelne Elemente oder ganze Oberflächen sind schneller anpassbar und aus-tauschbar. Die Aufgabenbereiche des Designers (Gestaltung der Oberfläche) unddes Entwicklers (Codierung der Abläufe) sind klarer getrennt. So kann die Erstel-lung einer Anwendung in parallelen Schritten erfolgen.
Die WPF wurde gänzlich neu entwickelt; es musste keine Rücksicht auf alte Tech-niken genommen werden. Desktop-Anwendungen können ohne großen Auf-wand auch für die Nutzung im Web umgestellt werden.
WPF-Anwendungen können außer auf die klassischen Medien Maus, Tastaturund Bildschirm auch auf Touchscreen und Digitalisierbrett zugreifen. Sie könnenüber Sprache gesteuert werden und Sprachausgaben erzeugen.
13
Einführung1
Windows Forms ist länger auf dem Markt als die WPF. Daher besitzt es einigeElemente, die in der WPF noch nicht vorliegen. Diese Elemente werden aber innaher Zukunft hinzugefügt. Außerdem haben Sie die Möglichkeit, beide Techni-ken zu vereinen. Sie können Elemente aus Windows Forms in einer WPF-Anwendung unterbringen und umgekehrt. So können Sie die Vorzüge aus beidenWelten nutzen.
1.1.1 Grafik in der WPF
Die WPF nutzt intern DirectX statt des veralteten GDI+, wie es bei WindowsForms der Fall ist. Damit wird die Darstellung hardwarebeschleunigt. 2D- und3D-Grafiken haben mehr Möglichkeiten und sind schneller.
Es wird Vektorgrafik statt Pixelgrafik verwendet. Damit ist eine Anwendung bes-ser skalierbar. Sie wird unabhängig von der Auflösung und passt für viele ver-schiedene Ausgabemedien. Dies wird aufgrund des mittlerweile fließendenÜbergangs von Smartphone über Pad, Netbook, Laptop, Desktop bis hin zu Groß-bildschirmen immer wichtiger.
Die Möglichkeiten der Grafik-Hardware beim Benutzer können besser genutztwerden. Die Grafik-Hardware wurde mit den Jahren immer besser und billiger,und damit stiegen auch die Erwartungen der Benutzer weiter an. Falls beimBenutzer permanent oder temporär keine geeignete Grafik-Hardware vorhandensein sollte, so besitzt die WPF Fallback-Mechanismen. Dies beeinflusst die Ent-wicklung nicht, nutzt aber die Möglichkeiten optimal aus.
1.2 Aufbau des Buchs
In jedem Abschnitt wird die Thematik anhand eines vollständigen Projekts erläu-tert. Sie sehen jeweils einen Screenshot und die wichtigen Teile des Codes. Ichempfehle Ihnen, das jeweilige Projekt auf Ihren PC zu kopieren und es auf IhremRechner aufzurufen, parallel zum Lesen des Buchs. Viele Zusammenhänge wer-den durch die Bedienung der Anwendung noch deutlicher.
In diesem Kapitel 1 werden einige grundlegende Begriffe erläutert. Die Besonder-heiten und Erweiterungen von XAML gegenüber XML und der WPF im Vergleichzu einer herkömmlichen Klassenbibliothek folgen in Kapitel 2.
Im Kapitel 3 lernen Sie verschiedene Layout-Möglichkeiten zur Anordnung derElemente kennen. Die WPF bietet zahlreiche Steuerelemente, diese folgen, inGruppen unterteilt, in Kapitel 4.
14
Visual Studio 2010 1.3
Mithilfe der WPF können Sie auf alte und neue Eingabemedien zugreifen. Diesewerden, zusammen mit dem Prinzip der Kommandos, in Kapitel 5 erläutert.Kapitel 6 beschreibt die verschiedenen Anwendungstypen und das Prinzip derRessourcen.
Vorlagen sorgen für einheitliches, aber individuelles Aussehen – siehe Kapitel 7.In Kapitel 8 wird erläutert, wie Sie eine Verbindung zwischen der Oberfläche undden Anwendungsdaten herstellen können.
Die besondere Stärke der WPF liegt in der Grafik. Der Aufbau von 2D-Grafikenund 3D-Grafiken wird in den Kapiteln 9 und 10 besprochen. Das Ganze gerät mit-hilfe von Animationen in Bewegung, die Thema von Kapitel 11 sind.
Multimediakomponenten aus dem Bereich Audio und Video können Sie mithilfeder WPF in Ihre Anwendungen integrieren. Dies ist Thema von Kapitel 12.
In Kapitel 13 lernen Sie, wie Sie verschiedene Formen von Dokumenten erstel-len, benutzen und ausdrucken. Zu guter Letzt folgt in Kapitel 14 das Zusammen-spiel der WPF mit Windows Forms und MS Office.
1.3 Visual Studio 2010
Die Entwicklungsumgebung Visual Studio 2010 von Microsoft ist selber mithilfeder WPF entwickelt worden. Die frei verfügbaren Ausgaben Visual Basic 2010Express und Visual C# 2010 Express ermöglichen einen schnellen Einstieg in dieProgrammierung mit WPF.
Die Oberfläche einer Anwendung wird mithilfe von XAML entworfen. XAMLsteht für eXtensible Application Markup Language. Es handelt sich dabei um eineXML-basierte Markierungssprache, die nicht nur in der WPF zum Einsatz kommt.
Innerhalb des Visual Studio können Sie die Oberfläche gleichzeitig in zweiAnsichten sehen: im grafischen Entwurf und im XAML-Code. Eine Änderung ineiner der beiden Ansichten wirkt sich unmittelbar auf die jeweils andereAnsicht aus.
Während der Codierung werden Sie sowohl in XAML als auch im Programmier-code von der kontextsensitiven Hilfe IntelliSense unterstützt. Dank IntelliSensewerden unter anderem nützliche Listen eingeblendet, zum Beispiel nach einemPunkt in der Objektschreibweise. Diese Listen enthalten nur die Elemente, indenen die bereits eingegebene Buchstabenkombination vorkommt (siehe Abbil-dung 1.1).
15
Einführung1
Abbildung 1.1 Diese Liste enthält nur Elemente mit »acti«.
Falls Sie einen Begriff markieren und die Taste (F1) betätigen, wird auch der Kon-text beachtet und das passende Ziel erkannt. Dies ist dann besonders nützlich,falls der markierte Begriff zum Beispiel gleichzeitig eine Klasse und eine Eigen-schaft bezeichnet.
1.3.1 Ein neues Projekt
Das Visual Studio bietet die Standardelemente einer Entwicklungsumgebung:Projektmappenexplorer, Code- und Designfenster, Eigenschaftenfenster inklusiveeiner Liste der Ereignisse und vieles mehr. Ein neues Projekt entwerfen Sie wiefolgt:
1. Rufen Sie Menü Datei � Neues Projekt auf.
2. Wählen Sie die Vorlage WPF-Anwendung aus, und vergeben Sie einenNamen.
3. Entwerfen Sie die Oberfläche im Designer, inklusive des XAML-Codes.
4. Ordnen Sie die Ereignisse den Ereignismethoden zu, entweder innerhalb desXAML-Codes oder im Eigenschaftenfenster, Reiter Ereignisse.
5. Codieren Sie die Abläufe im Codefenster.
6. Nicht vergessen: Menü Datei � Alle speichern; selbst ein bereits erfolgreichgestartetes Projekt könnte ansonsten verloren gehen!
Sollten Sie versehentlich einzelne Fenster geschlossen haben: Im Menü Ansicht �
Weitere Fenster können Sie den Projektmappenexplorer und das Eigenschaften-fenster wieder einblenden. Das Designfenster blenden Sie anschließend übereinen Doppelklick auf die Datei MainWindow.xaml im Projektmappenexplorerein, das Codefenster über die Datei MainWindow.xaml.cs. Zur normalen Anord-nung der Fenster gelangen Sie über das Menü Fenster � Fensterlayout zurück-
setzen.
16
Danksagung 1.6
1.4 Kaxaml
Bei Kaxaml handelt es sich um einen frei verfügbaren, ressourcensparendenXAML-Editor. Er stammt von einem Entwickler, der auch im Team der WPF tätigwar: Robby Ingebretsen. Kaxaml bietet einige nützliche Hilfen, um den erstenEntwurf einer Oberfläche vorzunehmen. Sie finden Kaxaml auf dem Datenträgerzum Buch oder über http://www.kaxaml.com.
1.5 XAML und C# bzw. VB
Eine Anwendung kann ausschließlich aus XAML-Code oder ausschließlich ausCode in einer der Programmiersprachen bestehen, zum Beispiel Visual Basic oderVisual C#. Meist wird allerdings gemischt: Die Oberfläche wird in XAML entwor-fen, die Abläufe werden in einer Programmiersprache codiert. Jedoch sind dieÜbergänge fließend; es herrscht keine strenge Trennung wie in Windows Forms.
In vielen Projekten dieses Buchs werden Elemente sowohl mit XAML als auch perProgrammcode erzeugt. Dies macht den hierarchischen Aufbau der Anwendungund das Zusammenspiel der einzelnen Elemente noch deutlicher.
Die Entscheidung, welche Sprache Sie verwenden, hängt von Ihren persönlichenVorlieben und Erfahrungen ab. Es wird auf die gleiche Klassenbibliothek zuge-griffen, und es stehen vergleichbare sprachliche Mittel zur Verfügung. Alle Bei-spielprojekte dieses Buchs liegen in zwei Versionen vor: im Buch in Visual C#, aufdem Datenträger zum Buch in beiden Sprachen. Die Erklärungen im Buch kön-nen ebenfalls für beide Sprachen genutzt werden, da dieselben WPF-Typenzugrunde liegen.
1.6 Danksagung
An dieser Stelle möchte ich mich bei Anne Scheibe, Christine Siedle, MatthiasGeirhos, Friederike Daenecke und dem ganzen Team von Galileo Press für dieUnterstützung und die hilfreiche Kritik bei der Erstellung dieses Buchs bedanken.
17
Die WPF stellt vielfältige Alternativen zur Anordnung der Elemente bereit. Diese Layout-Möglichkeiten erleichtern die Trennung von grafischer Gestaltung und Programmierung und damit eine Aufgaben-teilung zwischen Designer und Entwickler.
3 Layout
Sie bestimmen die Anordnung der Steuerelemente in Ihrer Anwendung über dasLayout. Damit sorgen Sie für ein ansprechendes Aussehen und eine gute Bedien-barkeit der Oberfläche. Sie soll stufenlos in der Größe skalierbar sein und unter-schiedlichen Umgebungen angepasst werden können. Die früher übliche Vergabefester Positionen sollten Sie daher möglichst vermeiden.
Der Inhalt des Client-Bereichs eines Anwendungsfensters ist genau ein Element.Im Allgemeinen ist dies ein Layout-Element. Dieses Layout-Element kann derUrsprung einer Hierarchie von Layouts sein. Layouts können also ineinander ver-schachtelt sein (siehe auch Abschnitt 3.1.3, »Layout-Hierarchie«).
Die gemeinsame Basisklasse der verschiedenen Layout-Klassen ist die KlassePanel. Sie stellt viele gemeinsame Member zur Verfügung. Im Projekt PanelAlle(siehe Abbildung 3.1) sehen Sie fünf mögliche Layouts: links oben Canvas, rechtsoben StackPanel, links unten WrapPanel, rechts unten DockPanel. Alle zusammensind innerhalb eines Grid angeordnet.
Abbildung 3.1 Alle fünf Layouts
29
Layout3
Sie können auch das Innere eines Elements mithilfe von Layouts frei gestalten:Im Projekt PanelAlle sehen Sie einen Button, der Text und eine CheckBox (hier:CB) beinhaltet. Ein anderer Button enthält Text und zwei RadioButtons (hier: RB).Sie sehen: Die Grenze zwischen Layout und Steuerelement ist fließend. Auch indiesem Punkt zeigt sich die Vielseitigkeit der WPF.
Eine Anmerkung: Als Beispiel für die Steuerelemente, die mithilfe von Layoutspositioniert werden, verwende ich häufig Buttons, unter anderem wegen ihrerguten Erkennbarkeit.
3.1 Canvas
In früheren Anwendungen wurden Steuerelemente häufig fest positioniert. Diessollten Sie, wie oben erläutert, möglichst vermeiden. Dennoch gibt es Situatio-nen, in denen dies für einen Teil der Oberfläche oder die gesamte Oberflächeunumgänglich ist. Dann verwenden Sie einen Canvas.
Zur Positionierung in x-Richtung verwenden Sie dabei die Attached PropertiesCanvas.Left und Canvas.Right. Für die Positionierung in y-Richtung nehmen SieCanvas.Top und Canvas.Bottom. Die Werte für diese Eigenschaften beziehen sichauf das logisch übergeordnete Element. Die Lage der Elemente in z-Richtung kön-nen Sie mithilfe der Attached Property Panel.ZIndex beeinflussen. Elemente mitunterschiedlichen Werten für ZIndex liegen vom Betrachter aus hintereinanderbezüglich der Bildschirmebene.
3.1.1 Positionierung
Im nachfolgenden Projekt CanvasPositionen wird eine Reihe von Buttons sowohlmithilfe von XAML als auch mithilfe von Programmcode positioniert (sieheAbbildung 3.2).
Abbildung 3.2 Positionierte Steuerelemente
30
Canvas 3.1
Zunächst der Aufbau in XAML:
<Window ... Height="150" Width="320"> <Canvas x:Name="cv"> <Button x:Name="b1" Click="b1_Click"> 1: ohne Left und Top</Button> <Button Canvas.Left="30" Canvas.Top="18" x:Name="b2" Click="b2_Click">2: Left 30, Top 18</Button> <Button Canvas.Left="5" Canvas.Bottom="5"> 3: Left 5, Bottom 5</Button> <Button Canvas.Right="5" Canvas.Bottom="22" Panel.ZIndex="1"> 4: Right 5, Bottom 22, ZIndex 1</Button> <Button Canvas.Right="5" Canvas.Bottom="39"> 5: Right 5, Bottom 39</Button> <Button Canvas.Right="5" Canvas.Bottom="5" Panel.ZIndex="1" Click="b6_Click">6: Right 5, Bottom 5, ZIndex 1</Button> </Canvas></Window>
Die Steuerelemente stehen innerhalb des Canvas-Containers. Dieser füllt, als ein-ziges Element, den gesamten Client-Bereich des Fensters aus. Er bekommt hiereinen eindeutigen Namen, weil ihm später ein Steuerelement per Programmcodehinzugefügt wird. Die Steuerelemente sind dem Canvas untergeordnet.
Bei Button 1 gibt es keine Positionsangaben, daher liegt er ganz links oben. BeiButton 2 ist der Abstand vom linken und vom oberen Rand, bei Button 3 derAbstand vom linken und vom unteren Rand des Canvas festgelegt. Bei den restli-chen Buttons 4 bis 6 wird mit unterschiedlichen Abständen vom rechten undvom unteren Rand gearbeitet.
Sollten sich einzelne Steuerelemente überlappen, so liegt das später erzeugte Ele-ment in z-Richtung über dem früher erzeugten Element. Dies sehen Sie bei denButtons 1 und 2. Mit der Attached Property Panel.ZIndex können Sie darauf Ein-fluss nehmen. Ohne Angabe gilt Panel.ZIndex = 0. Ein positiver Wert »hebt« dasSteuerelement in Richtung Betrachter, ein negativer Wert »versenkt« das Steuer-element in der Oberfläche. Daher überlappt Button 4 den Button 5, wird abervon Button 6 überlappt.
Die Lage können Sie auch per Programmcode beeinflussen, wie dies für die But-tons 1 und 2 durchgeführt wird:
private void b1_Click(object sender, RoutedEventArgs e){ b1.SetValue(Canvas.LeftProperty, 10.0); b1.SetValue(Canvas.TopProperty, 10.0);
31
Layout3
b1.SetValue(Panel.ZIndexProperty, 1);}
private void b2_Click(object sender, RoutedEventArgs e){ double left, top; left = (double)b2.GetValue(Canvas.LeftProperty); top = (double)b2.GetValue(Canvas.TopProperty);
b2.SetValue(Canvas.LeftProperty, left + 10); b2.SetValue(Canvas.TopProperty, top + 10); b2.Content = "2: verschoben";}
Button 1 wird absolut verschoben, und zwar auf Position 10,10. Gleichzeitig wirder dem Betrachter entgegengehoben. Daher überlappt er nun Button 2. DieMethode SetValue() dient zum Verändern der Werte von Dependency Properties.Canvas.LeftProperty steht für die Attached Property Canvas.Left, und bei denanderen verhält es sich entsprechend. Die Werte für Left und Top müssen vomTyp double sein, der Wert für ZIndex vom Typ int.
Button 2 wird bei jedem Click relativ verschoben: um den Wert 10 nach rechtsund um den Wert 10 nach unten. Die Methode GetValue() dient zum Ermittelndes aktuellen Werts der Dependency Property. Diese ist vom Typ object. Für diespätere Weiterverwendung ist daher eine explizite Typkonvertierung notwendig.Hier ist es wichtig, den richtigen Typ zu wählen. Die Eigenschaft Content stehtfür den Inhalt des Elements, also für die Aufschrift des Buttons.
Hinweis: Die ursprüngliche Position des Buttons 1 können Sie nicht über dieMethode GetValue() ermitteln, da ihm die Eigenschaften Left und Top nicht perXAML zugewiesen wurden. Die Methode liefert in diesem Falle den Wert »nichtdefiniert«. Abhilfe: Setzen Sie Left und Top in XAML auf 0.
3.1.2 Elemente neu erzeugen
Im Projekt CanvasPositionen dient Button 6 zur Erstellung von weiteren Elemen-ten per Programmcode:
private void b6_Click(object sender, RoutedEventArgs e){ Button nb = new Button(); nb.Content = "Neu"; nb.SetValue(Canvas.RightProperty, 5.0);
32
Canvas 3.1
nb.SetValue(Canvas.BottomProperty, 80.0); cv.Children.Add(nb);}
Mit dieser Technik können Sie Steuerelemente in allen Panel-Typen (Canvas,StackPanel …) neu erzeugen. Zunächst wird eine neue Instanz des Steuerelementsangelegt. Diese bekommt Eigenschaften, wie Aufschrift und Lage. Hier ist eswichtig, double-Werte zu wählen.
Anschließend wird sie der Auflistung Children des jeweiligen Panels mithilfe derMethode Add() hinzugefügt. Diese Auflistung verweist auf die untergeordnetenElemente eines Panels, hier also des Canvas.
3.1.3 Layout-Hierarchie
In einer Hierarchie von Layouts lassen sich mehrere Layouts, auch unterschiedli-chen Typs, miteinander kombinieren. Dies wird im nachfolgenden Projekt Canvas-InCanvas anhand von Canvas-Layout-Elementen gezeigt. Angaben wie Canvas.Leftbeziehen sich dabei immer auf das direkt übergeordnete Layout-Element.
Innerhalb eines Canvas, der den Client-Bereich des Fensters einnimmt, werdenzwei untergeordnete Canvas positioniert. Diese beinhalten wiederum Buttons(siehe Abbildung 3.3).
Abbildung 3.3 Untergeordnete Elemente
Zunächst der Aufbau in XAML:
<Window ...> <Canvas> <Canvas Width="200" Height="60" x:Name="cv1" Background="LightGray"> <Button Canvas.Top="10" Canvas.Left="50">Button 1</Button> </Canvas> <Canvas Width="200" Height="60" x:Name="cv2" Canvas.Top="70" Background="LightGray">
33
Layout3
<Button Canvas.Top="10" Canvas.Left="50">Button 2</Button> <Button Canvas.Top="10" Canvas.Left="110" x:Name="b3" Click="b3_Click">Button 3</Button> </Canvas> </Canvas></Window>
Die beiden inneren Canvas cv1 und cv2 sind dem äußeren Canvas untergeordnet.Die Angabe Canvas.Top des unteren Canvas bezieht sich auf den äußeren Canvas.Die beiden Buttons 1 und 2 sind gleichartig positioniert. Ihre Angaben Canvas.Top und Canvas.Left beziehen sich allerdings einmal auf den ersten, einmal aufden zweiten inneren Canvas.
Hinweis: Die Eigenschaft Background für die Hintergrundfarbe ist vom Typ Brush(dt. Pinsel) und nicht vom Typ Color. In XAML werden häufig Type Convertergenutzt, die eine passende Umwandlung vornehmen können. Mehr zum TypBrush finden Sie in Abschnitt 9.4, »Pinsel«.
Die Unterordnung bezüglich der beiden Canvas können Sie auch per Programm-code verändern. Betätigt der Benutzer den dritten Button, so wechselt der Buttonvom unteren zum oberen Canvas:
private void b3_Click(object sender, RoutedEventArgs e){ if (b3.Parent == cv2) { cv2.Children.Remove(b3); cv1.Children.Add(b3); }}
Die Eigenschaft Parent liefert einen Verweis auf das übergeordnete Element.Falls es sich in diesem Fall um den unteren Canvas handelt, so wird die Unterord-nung mithilfe der Methode Remove() aufgelöst und eine neue Unterordnung zumoberen Canvas erstellt: Der Button wechselt nach oben (siehe Abbildung 3.4).
Abbildung 3.4 Hier wurde die Unterordnung geändert.
34
StackPanel 3.2
3.2 StackPanel
Ein StackPanel »stapelt« wortwörtlich die Steuerelemente: Diese werden einfachin einer Reihe untereinander oder nebeneinander angeordnet. Im Projekt Stack-PanelAnordnung werden einige Möglichkeiten dargestellt.
Den Standard-Fall mit vertikaler Orientierung sehen Sie in Abbildung 3.5 links.In Abbildung 3.5 Mitte sind die Steuerelemente nebeneinander angeordnet.Zusätzlich wurde die Richtung der Reihe geändert: Die Steuerelemente werdenvon rechts nach links gestapelt. Sollte die Umgebung zu wenig Platz bieten, dannsind möglicherweise einige Elemente nicht erreichbar. Zur Abhilfe können Siedas StackPanel in ein Steuerelement vom Typ ScrollViewer einbetten (sieheAbbildung 3.5 rechts).
Falls die Steuerelemente innerhalb eines vertikal orientierten StackPanel keineeigene Breite haben, so nehmen sie die maximal verfügbare Breite in Anspruch.Entsprechendes gilt für die Höhe in einem horizontal orientierten StackPanel.
Alle Layouts können Sie in einer Hierarchie anordnen. Die drei beschriebenenStackPanel sind insgesamt wiederum in einem übergeordneten StackPanel mithorizontaler Orientierung eingebettet, diesmal in der Standard-Ablaufrichtung»von links nach rechts«.
Abbildung 3.5 Verschiedene StackPanel
Der Aufbau in XAML:
<Window ...> <StackPanel Orientation="Horizontal"> <StackPanel Width="100" Margin="10"> <Button Click="neu_Click">Button 1</Button> <Button>Button 2</Button> <Button>Button 3</Button> </StackPanel> <StackPanel Orientation="Horizontal" FlowDirection="RightToLeft" ...> ... </StackPanel>
35
Layout3
<ScrollViewer VerticalScrollBarVisibility="Auto"...> <StackPanel> ... </StackPanel> </ScrollViewer> </StackPanel></Window>
Die Orientierung wird mit der Eigenschaft Orientation festgelegt. Es gibt dieWerte Vertical (übereinander) und Horizontal (nebeneinander). Die Eigen-schaft FlowDirection bestimmt die Richtung der Reihe. Erlaubte Werte sindLeftToRight und RightToLeft. Der letztgenannte Wert macht nur Sinn, fallsOrientation den Wert Horizontal hat.
Die Eigenschaft VerticalScrollBarVisibility des Elements vom Typ Scroll-Viewer können Sie auf den Wert Auto stellen. Dann wird sie nur eingeblendet,wenn sie benötigt wird, also wenn es »zu viele« Elemente gibt. Testen Sie dies imvorhandenen Projekt, indem Sie einfach die Fensterhöhe mit der Maus verän-dern.
Zur besseren Darstellung wurden die Breite sowie der Außenabstand der unter-geordneten StackPanel festgelegt, und zwar über die Eigenschaften Width undMargin. Mehr zu diesen Eigenschaften erfahren Sie in Kapitel 4, »Steuerele-mente«.
3.2.1 Elemente neu erzeugen
Im Projekt StackPanelAnordnung können Sie mithilfe der Buttons 1, 4 und 7 wei-tere Buttons per Programmcode erstellen:
private void neu_Click(object sender, RoutedEventArgs e){ Button nb = new Button(); nb.Content = "Neu"; Panel p = (sender as Button).Parent as Panel; p.Children.Add(nb);}
Es wird ein neuer Button erzeugt und beschriftet. Dann wird das jeweils überge-ordnete Panel des geklickten Buttons (1, 4 oder 7) mithilfe der Eigenschaft Parentermittelt. Der neu erzeugte Button wird der Auflistung Children dieses Panelsmithilfe der Methode Add() als neues, untergeordnetes Element hinzugefügt.
Sie können feststellen, dass StackPanels mit vertikaler Orientierung nach untenerweitert werden. StackPanels mit horizontaler Orientierung werden nach rechtserweitert, unabhängig von der Richtung der Reihe.
36
WrapPanel 3.3
3.3 WrapPanel
Ein WrapPanel ist, etwas vereinfacht ausgedrückt, ein StackPanel mit automati-schem Zeilenumbruch. Die Steuerelemente werden der Reihe nach angeordnet.Falls es nicht mehr genügend Platz gibt, dann wird eine weitere Reihe aufge-macht. Es kommt hinzu, dass die Steuerelemente nur noch den notwendigenPlatz einnehmen, nicht mehr den maximal verfügbaren Platz. Im Projekt Wrap-PanelAnordnung sehen Sie einige Möglichkeiten.
Das oberste WrapPanel in Abbildung 3.6 beinhaltet sieben Steuerelemente. Siesind jeweils nur so breit wie nötig. Das letzte Element passte nicht mehr in dieReihe, daher wurde eine neue Reihe eröffnet. Die Richtung der Reihe weist imStandardfall von links nach rechts.
Beim zweiten WrapPanel in Abbildung 3.6 sind die fünf Steuerelemente vonrechts nach links angeordnet. Es gibt auch hier eine zweite Reihe.
Im nächsten WrapPanel in Abbildung 3.6 wurde die Höhe einzelner Steuerele-mente geändert. Dies hat Auswirkungen auf die anderen Steuerelemente, die sichaktuell in der gleichen Reihe befinden. Sie nehmen die gleiche Höhe an, falls siekeine eigene Höhe haben.
Sie können aber auch eine einheitliche Breite beziehungsweise Höhe für alleSteuerelemente festlegen. Dies sehen Sie am letzten WrapPanel in Abbildung 3.6.
Abbildung 3.6 Verschiedene WrapPanel
37
Layout3
Der Aufbau in XAML:
<Window ...> <StackPanel> <WrapPanel Margin="5"> <Button Click="neu_Click">Button 1</Button> <Button>B 2</Button> ... <Button>Button 7</Button> </WrapPanel> <WrapPanel FlowDirection="RightToLeft" ...> ... </WrapPanel> <WrapPanel ...> ... <Button Height="40">3: Height 40</Button> <Button Height="18">4: Height 18</Button> ... </WrapPanel> <WrapPanel ItemWidth="70" ItemHeight="30" ...> ... </WrapPanel> </StackPanel></Window>
Wiederum wird über die Eigenschaft FlowDirection die Richtung der Reihe fest-gelegt. In einer Reihe haben alle Steuerelemente dieselbe Höhe. Sobald eines derSteuerelemente seine Höhe ändert (Eigenschaft Height), ändert sich auch dieHöhe der anderen Steuerelemente in der gleichen Reihe. Falls eine einheitlicheBreite beziehungsweise Höhe gewünscht wird, können Sie dies über die Eigen-schaften ItemWidth und ItemHeight des Panels bestimmen.
3.3.1 Elemente neu erzeugen
Mithilfe der verschiedenen Buttons mit der Aufschrift Button 1 können Sie wei-tere Buttons im jeweiligen Panel per Programmcode erstellen. Die Methode neu_Click() aus dem Abschnitt 3.2.1, »Elemente neu erzeugen«, können Sie hierunverändert anwenden, da alle Layoutklassen von der gemeinsamen BasisklassePanel abgeleitet sind.
3.3.2 Vertikale Orientierung
Auch in einem vertikal angeordneten WrapPanel gibt es zwei Möglichkeiten fürdie Richtung der Reihe. Dies sehen Sie im Projekt WrapPanelOrientierung inAbbildung 3.7.
38
DockPanel 3.4
Abbildung 3.7 Zwei vertikale WrapPanel
Beide vertikalen Reihen bieten nicht genügend Platz, daher wird jeweils eine wei-tere vertikale Reihe eröffnet. Im zweiten Fall weist die Richtung der Reihe vonrechts nach links. Der Aufbau in XAML:
<Window ...> <StackPanel Orientation="Horizontal"> <WrapPanel Orientation="Vertical" ...> ... </WrapPanel> <WrapPanel Orientation="Vertical" FlowDirection="RightToLeft" Margin="5"> ... </WrapPanel> </StackPanel></Window>
Auch in diesem Projekt können Sie über die beiden Buttons mit der AufschriftButton 1 weitere Buttons erstellen.
3.4 DockPanel
In einem DockPanel ordnen Sie die Steuerelemente so an, wie Sie es aus vielenAnwendungen kennen: Oben wird zum Beispiel das Hauptmenü angedockt,unten eine Statuszeile, links und rechts gibt es weitere Bedienmöglichkeiten. Inder verbleibenden Mitte wird der zu bearbeitende Inhalt dargestellt. Ein Beispielsehen Sie im Projekt DockPanelTBLR (siehe Abbildung 3.8).
Abbildung 3.8 Reihenfolge »Top«, »Bottom«, »Left«, »Right«
39
Layout3
Der Aufbau in XAML:
<Window ...> <DockPanel> <Button DockPanel.Dock="Top">1: Top</Button> <Button DockPanel.Dock="Bottom">2: Bottom</Button> <Button DockPanel.Dock="Left">3: L</Button> <Button DockPanel.Dock="Left">4: L</Button> <Button DockPanel.Dock="Left">5: L</Button> <Button DockPanel.Dock="Right">6: Right</Button> <TextBlock Margin="10">Inhalt</TextBlock> </DockPanel></Window>
Den Steuerelementen innerhalb eines DockPanels wird die Attached PropertyDockPanel.Dock zugeordnet. Die Werte für die Eigenschaft stammen aus der Enu-meration Dock: Top, Bottom, Left und Right.
Wichtig ist die Reihenfolge: Der erste Button wird oben angeordnet und erstrecktsich über die gesamte Breite. Beim zweiten Button gilt das Gleiche für unten. Siekönnen mehrere Steuerelemente im gleichen Bereich andocken: Die Buttons 3bis 5 werden nebeneinander links dargestellt. Diese Buttons können sich aller-dings nicht mehr bis ganz oben oder ganz unten erstrecken, da dieser Platzbereits durch die Buttons 1 und 2 belegt ist. Beim Button 6 gilt das Gleiche fürrechts.
Das letzte Element, hier ein TextBlock, wird gar nicht angedockt. Daher füllt esden verbleibenden Platz. Mehr zum Element TextBlock folgt in Abschnitt 4.3.2.
3.4.1 DockPanel in Hierarchie
Im nachfolgenden Projekt DockPanelLRT sehen Sie Elemente, die jeweils wie-derum andere Elemente enthalten (siehe Abbildung 3.9).
Abbildung 3.9 DockPanel und StackPanel
40
DockPanel 3.4
Die Elemente wurden in der Reihenfolge links, rechts und oben erzeugt. Dahersteht für das obere Element nicht mehr die gesamte Breite zur Verfügung. Dasrechte und das obere Element ist jeweils ein StackPanel, das weitere Elementebeinhaltet. Der Aufbau in XAML:
<Window ...> <DockPanel> <Button DockPanel.Dock="Left">1: Left</Button> <StackPanel DockPanel.Dock="Right"> <Button>2: SP Right</Button> ... </StackPanel> <StackPanel DockPanel.Dock="Top" Orientation="Horizontal"> <Button>6: SP Top</Button> ... </StackPanel> <TextBlock Margin="10">Inhalt</TextBlock> </DockPanel></Window>
Es gibt drei Elemente, die mit der Attached Property DockPanel festgelegt wur-den: ein Button und zwei StackPanels.
3.4.2 Elemente neu erzeugen
Im nachfolgenden Projekt DockPanelLastChild wird erläutert, wie Sie einemDockPanel neue Elemente an der gewünschten Stelle hinzufügen (siehe Abbil-dung 3.10).
Abbildung 3.10 Elemente neu erzeugen
Die Elemente wurden in der Reihenfolge links, rechts, oben, unten erzeugt. Eswurden zwei weitere Elemente mit den Werten Top und Bottom für die Eigen-schaft DockPanel.Dock hinzugefügt.
41
Layout3
Zunächst der Aufbau in XAML:
<Window ...> <DockPanel LastChildFill="False"> ... <Button DockPanel.Dock="Top" Click="neu_Click"> 3: Top</Button> <Button DockPanel.Dock="Bottom" Click="neu_Click"> 4: Bottom</Button> </DockPanel></Window>
Mithilfe der Eigenschaft LastChildFill können Sie bestimmen, ob das letzte Ele-ment den verbleibenden Platz im Fenster füllt (Standardwert = True) oder nicht(Wert = False). Der Aufbau der Methode neu_Click() ist etwas aufwendiger alsbei den anderen Panels, da Sie zunächst die Position ermitteln müssen:
private void neu_Click(object sender, RoutedEventArgs e){ Button sb = sender as Button; Object dp = sb.GetValue(DockPanel.DockProperty); Button nb = new Button(); nb.Content = "Neu"; nb.SetValue(DockPanel.DockProperty, dp);
Panel p = sb.Parent as Panel; p.Children.Add(nb);}
Mithilfe der Methode GetValue() wird der Wert der Dependency PropertyDockPanel.DockProperty ermittelt, die die Position des auslösenden Buttonsangibt. Dies wird die Position des neuen Buttons, die mithilfe von SetValue()festgelegt wird.
3.5 Grid
Ein Grid dient zur regelmäßigen, übersichtlichen Anordnung der Elemente ineinem Raster. Sie legen zunächst die Anzahl der Zeilen und Spalten fest. Den ein-zelnen Steuerelementen ordnen Sie anschließend die Koordinaten ihrer Zelle imGrid zu, die aus der Nummer der Zeile und der Nummer der Spalte bestehen. Einerstes Beispiel folgt im Projekt GridAnordnung (siehe Abbildung 3.11).
42
Grid 3.5
Abbildung 3.11 Ein Grid mit drei Zeilen und zwei Spalten
Der Aufbau in XAML:
<Window ...> <Grid x:Name="gr"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Button Grid.Row="0" Grid.Column="0" Click="b1_Click"> 1: 0, 0</Button> <Button Grid.Row="0" Grid.Column="1" Click="b2_Click"> 2: 0, 1</Button> <Button Grid.Row="1" Grid.Column="1">3: 1, 1</Button> <Button Grid.Row="2" Grid.Column="0" Click="b4_Click"> 4: 2, 0</Button> </Grid></Window>
Die Gestaltung der einzelnen Zeilen und damit auch ihre Anzahl wird in der Auf-listung Grid.RowDefinitions festgelegt. Das Gleiche gilt für die Spalten in derAuflistung Grid.ColumnDefinitions. Die Zuordnung zu den einzelnen Zellen desGrids geschieht mithilfe der Attached Properties Grid.Row und Grid.Column. DieZählung beginnt bei 0. Dies ist auch der Standardwert. Bei Button 1 hätten Siealso die Zuordnung weglassen können.
3.5.1 Elemente neu erzeugen
Im Projekt GridAnordnung dient Button 1 zur Erzeugung eines neuen Elementsinnerhalb einer vorhandenen Zelle. Button 2 fügt eine neue Spalte mit einemweiteren Element hinzu. Button 4 fügt eine neue Zeile hinzu, ebenfalls mit
43
Layout3
einem weiteren Element. Damit kann der Benutzer das Grid verändern, sodass eszum Beispiel wie in Abbildung 3.12 aussieht.
Abbildung 3.12 Ein Grid mit vier Zeilen und vier Spalten
Der zugehörige Programmcode:
private void b1_Click(...){ Button nb = new Button(); nb.Content = "Neu"; nb.SetValue(Grid.RowProperty, 2); nb.SetValue(Grid.ColumnProperty, 1); gr.Children.Add(nb);}
private void b2_Click(...){ ... nb.SetValue(Grid.RowProperty, 0); gr.ColumnDefinitions.Add(new ColumnDefinition()); nb.SetValue(Grid.ColumnProperty, gr.ColumnDefinitions.Count - 1); gr.Children.Add(nb);}
private void b4_Click(...){ ... gr.RowDefinitions.Add(new RowDefinition()); nb.SetValue(Grid.RowProperty, gr.RowDefinitions.Count - 1); nb.SetValue(Grid.ColumnProperty, 0); gr.Children.Add(nb);}
Mithilfe der Methode SetValue() setzen Sie die Dependency Properties Grid.RowProperty und Grid.ColumnProperty auf die gewünschten Werte. Zur Erzeu-gung einer neuen Spalte wird der Auflistung ColumnDefinitions mithilfe derMethode Add() ein neues Element hinzugefügt. Die Eigenschaft ColumnDefini-
44
Grid 3.5
tions.Count liefert die aktuelle Anzahl der Spalten. Damit können Sie die Posi-tion für das neue Element in der neuen Spalte bestimmen. Entsprechendes giltfür die Auflistung Grid.RowDefinitions.
3.5.2 Elemente über mehrere Zellen
Elemente können sich über mehrere Zellen erstrecken. Dies wird ähnlich wie inHTML-Tabellen gelöst. Ein Beispiel sehen Sie im Projekt GridSpannweite (sieheAbbildung 3.13).
Abbildung 3.13 Elemente über mehrere Zellen
Der Aufbau in XAML:
<Window ...> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Button Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2"> 1: 0, 0, ColumnSpan 2</Button> <Button Grid.Row="1" Grid.Column="0">2: 1, 0</Button> <Button Grid.Row="1" Grid.Column="1" Grid.RowSpan="2"> 3: 1, 1, RowSpan 2</Button> <Button Grid.Row="2" Grid.Column="0">4: 2, 0</Button> </Grid></Window>
Zunächst wird das Grundgerüst aufgebaut, das aus drei Zeilen und zwei Spaltenbesteht. Anschließend ordnen Sie die Elemente wie gewohnt über die Attached
45
Layout3
Properties Grid.Row und Grid.Column zu. Die Attached Properties Grid
.ColumnSpan und Grid.RowSpan dienen dazu, die Elemente von der angegebenenZelle aus über die entsprechende Anzahl an Zellen zu »spannen«. Der Inhalt derZelle 0,1 stammt somit aus der Zelle 0,0. Der Inhalt der Zelle 2,1 stammt entspre-chend aus der Zelle 1,1.
3.5.3 Größe der Zellen festlegen
Bisher waren alle Zellen gleich groß. Natürlich haben Sie auch die Möglichkeit,die Größe der Zellen selbst zu bestimmen. Die Zellgröße kann sich nach demInhalt richten, sie kann einen bestimmten Wert annehmen oder in einem festenVerhältnis zur Größe der anderen Zellen stehen.
Im nachfolgenden Projekt GridAuto wird die Höhe beziehungsweise die Breitebestimmter Zellen nach dem Inhalt ausgerichtet (siehe Abbildung 3.14).
Abbildung 3.14 Höhe beziehungsweise Breite automatisch
Der Aufbau in XAML:
<Window ...> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition Width="Auto" /> </Grid.ColumnDefinitions> ...</Window>
Dank des Wertes Auto für die Eigenschaft Height richtet sich die Höhe der erstenZeile nach der Höhe des Textes auf dem Element. Das Entsprechende gilt für die
46
Grid 3.5
Breite (Width) der zweiten Spalte, die sich nach der Breite des Textes richtet. Diegilt unabhängig von den Einstellungen für Grid.RowSpan und Grid.ColumnSpan.
Im nachfolgenden Projekt GridWert stehen die Höhen der Zeilen in einembestimmten Verhältnis zueinander. Dagegen richtet sich die Breite bestimmterSpalten nach einem Wert (siehe Abbildung 3.15).
Abbildung 3.15 Höhe im Verhältnis, Breite mit Wert
Der Aufbau in XAML:
<Window ...> <Grid> <Grid.RowDefinitions> <RowDefinition Height="2*" /> <RowDefinition Height="*" /> <RowDefinition Height="3*" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition Width="190" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> ...</Window>
Die Höhen der Zeilen stehen im Verhältnis 2 zu 1 zu 3. Ein einfacher * steht beieiner Verhältnisangabe für 1*. Die Breite der linken Spalte wurde mit dem Wert190 festgelegt, für die rechte Spalte verbleibt der Rest. Auch hier sehen Sie wie-der die Parallelen zu HTML.
3.5.4 Die Größe der Zellen flexibel gestalten
Sie möchten dem Benutzer Ihrer Anwendung die Möglichkeit geben, Zeilenhöheund Spaltenbreite zu verändern? Dies ermöglichen Ihnen Elemente vom TypGridSplitter. Im nachfolgenden Projekt GridVerschieben wird Ihnen ein Beispielgezeigt (siehe Abbildung 3.16).
47
Layout3
Abbildung 3.16 Verschobenes Grid
Ursprünglich waren die Zellen mit den Buttons gleich groß. Der Benutzer hataber bereits die beiden schwarz hervorgehobenen GridSplitter genutzt, um Höheund Breite zu verstellen. Der Aufbau in XAML:
<Window ...> <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition MinHeight="10" /> <RowDefinition Height="Auto" /> <RowDefinition MinHeight="10" /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition MinWidth="10" /> <ColumnDefinition Width="Auto" /> <ColumnDefinition MinWidth="10" /> </Grid.ColumnDefinitions> <Button Grid.Row="0" Grid.Column="0"> 1: 0, 0, MinW 10</Button> <GridSplitter Grid.Row="0" Grid.Column="1" Grid.RowSpan="4" ResizeBehavior="PreviousAndNext" Width="3" Background="Black" /> <Button Grid.Row="0" Grid.Column="2"> 2: 0, 2, MinW 10</Button> <Button Grid.Row="1" Grid.Column="0"> 3: 1, 0, MinH 10</Button> <Button Grid.Row="1" Grid.Column="2">4: 1, 2</Button> <GridSplitter Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="3" ResizeBehavior="PreviousAndNext" HorizontalAlignment="Stretch" Height="3" Background="Black" /> <Button Grid.Row="3" Grid.Column="0">
48
Layout-Kombination 3.6
5: 3, 0, MinH 10</Button> <Button Grid.Row="3" Grid.Column="2">6: 3, 2</Button> </Grid></Window>
Das Grid umfasst vier Zeilen und drei Spalten. Eine Zeile und eine Spalte werdenjeweils von einem GridSplitter eingenommen. Für die beiden Nachbarzeilen(1 und 3) der Zeile mit dem GridSplitter (2) ist es sinnvoll, eine Minimalhöhe zuvereinbaren. Ansonsten würden sie bei einer extremen Verschiebung des Grid-Splitters gänzlich verschwinden. Entsprechend haben die Nachbarspalten (0 und 2)der Spalte mit dem GridSplitter (1) eine Minimalbreite.
Der Spalten-GridSplitter in Zelle 0,1 geht über die gesamte Spalte (Grid.RowSpan=4). Zur besseren Bedienung hat er eine Breite von 3 und ist schwarz.
Der Zeilen-GridSplitter in Zelle 2,0 geht über die gesamte Zeile (Grid.ColumnSpan=3). Zur besseren Bedienung hat er eine Höhe von 3, ist schwarzund dehnt sich über die gesamte Breite aus (HorizontalAlignment = Stretch).
Bei beiden GridSplittern ist die Eigenschaft ResizeBehavior mit dem gleichenWert festgelegt. Damit legen Sie fest, welche Zeilen beziehungsweise Spalten ihreGröße verändern. Der Wert stammt aus der Enumeration GridResizeBehavior.Erlaubt sind:
� PreviousAndNext: Zeile über und unter dem GridSplitter beziehungsweiseSpalte links und rechts vom GridSplitter (gilt hier)
� CurrentAndNext: Zeile beziehungsweise Spalte des GridSplitters und Zeile da-runter beziehungsweise Spalte rechts
� PreviousAndCurrent: Zeile beziehungsweise Spalte des GridSplitters und Zeiledarüber beziehungsweise Spalte links
� BasedOnAlignment: Die Größenänderung richtet sich nach den Alignment-Eigenschaften.
3.6 Layout-Kombination
Es folgt ein Beispiel für die Kombination verschiedener Layouts (Projekt Panel-Kombi). Bei einigen Steuerelementen wurde auch das Innere mithilfe eines Lay-outs gestaltet. Zunächst sehen Sie in Abbildung 3.17 die Anwendung in Original-größe nach dem Start.
49
Layout3
Abbildung 3.17 Nach dem Start
Innerhalb der Button-Steuerelemente 3 und 5 sind unter dem Text eine ComboBoxbeziehungsweise eine CheckBox angeordnet. Nach einer Verkleinerung durch denBenutzer kann die Anwendung aber auch so aussehen wie in Abbildung 3.18.
Abbildung 3.18 Nach der Verkleinerung
Der Aufbau in XAML:
<Window ...> <DockPanel> <Button DockPanel.Dock="Left">B 1</Button> <Button DockPanel.Dock="Top">B 2</Button> <Grid DockPanel.Dock="Right"> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> </Grid.RowDefinitions> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Button Grid.Row="0" Grid.Column="0"> <StackPanel> <TextBlock>Text 3</TextBlock> <ComboBox> <ComboBoxItem IsSelected="True">3.1</ComboBoxItem> <ComboBoxItem>3.2</ComboBoxItem> <ComboBoxItem>3.3</ComboBoxItem>
50
Layout-Kombination 3.6
</ComboBox> </StackPanel> </Button> <Button Grid.Row="0" Grid.Column="1">B 4</Button> <Button Grid.Row="1" Grid.Column="0"> <StackPanel> <TextBlock>Text 5</TextBlock> <CheckBox>CB 5</CheckBox> </StackPanel> </Button> <Button Grid.Row="1" Grid.Column="1">B 6</Button> </Grid> <TextBlock HorizontalAlignment="Center" VerticalAlignment="Center">Inhalt</TextBlock> </DockPanel></Window>
Das Hauptelement des Layouts ist ein DockPanel. Es beinhaltet drei gedockte Ele-mente (zwei Buttons und ein Grid) sowie einen TextBlock. Das Grid hat zwei Zei-len und zwei Spalten. Die Elemente der ersten Spalte sind Buttons, die mithilfeeines StackPanels gestaltet wurden. Diese StackPanels beinhalten je einen Text-Block und ein weiteres Element. Mehr zu Aufbau und Eigenschaften der Steuer-elemente erfahren Sie im folgenden Kapitel.
51
Index
> 66< 66* Größenangabe 408< anzeigen 66> anzeigen 662D-Grafik 241
für 3D-Oberfläche 3113D-Grafik 289
aus externen Daten 294Drehung 322Form des Objekts 293gemeinsame Punkte 298Grundelement 290Kamera 292, 299Kameralage 296, 301Landschaft 329Leinwand 292Licht 293, 297, 302Material 293, 313mehrere Körper 306mehrere Körper, mit Ereignis 310mit 2D-Oberfläche 311mit Ereignis 309mit Steuerelementen 311Modell 306Rotationsgruppe 327Rückseite 297Skalierung 319Textur 313, 316Transformation 319Transformationsgruppe 326Verschiebung 321Vorderseite 293
3D-Würfel 296
A
Abhängigkeitseigenschaft 21Absatz 81, 398, 400
ändern 402ausrichten 401Beginn 423einrücken 401
Ende 423erster / letzter 402formatieren 422hinzufügen 401Inhalt 412zusammenhalten 401
Abschnitt 398, 402ändern 403formatieren 402hinzufügen 403
AccelerationRatioAnimationTimeline 337
AcceptsReturnTextBox 78
Add()AdornerLayer 286Blocks 401Children 33ColumnDefinitions 44eigene Auflistung 229Inlines 75InputGestureCollection 152Int32Collection 295Items 84, 95PathSegmentCollection 256Point3DCollection 295PointCollection 247ValidationRules 223
AddChild()IAddChild 426
AddedLengthTextChange 79
Adobe Flash 13AdornedElement
Adorner 287RenderSize 287
Adorner 286AdornedElement 287OnRender() 287
AdornerLayerAdd() 286GetAdornerLayer() 286
445
Index
AlignCenterEditingCommands 422
AlignLeftEditingCommands 422
AlignRightEditingCommands 422
AllowsTransparencyWindow 183
Alphakanal 263, 280Alt
ModifierKeys 150AmbientLight 293, 302Angehängte Eigenschaft 23Angehängtes Ereignis 27Angle
AxisAngleRotation3D 323RotateTransform 271, 272, 274
AngleVelocityManipulationVelocities 145
AngleXSkewTransform 276
AngleYSkewTransform 276
Animation 333anhalten 347beenden 347Beginn 334Beschleunigung 337der 3D-Rotation 356der Bewegung 334der Farbe 349, 362der Größe 343der Transformation 347der Transparenz 343der Zeichenkette 363Ende 334entlang Pfad 368federt 367fortsetzen 347gemeinsame Eigenschaften 341Geschwindigkeit 335Geschwindigkeit ändern 347, 356mit Event Trigger steuern 354nach Funktion 364nach Sinus 367nach Spline 359ohne Programmcode 350
per Programmcode 343Rückkehr 337springen 356sprunghafte 359, 367starten 335, 343, 346, 351Startverzögerung 338steuern 345unterteilen 359variable Geschwindigkeit 359Veränderung 334Wiederholung 337Zeitdauer 335, 337Zieleigenschaft 343, 345Zielelement 343, 345zu Punkt springen 347zum Ende springen 347zuordnen 335, 343, 346, 356
AnimationTimeline 333, 334, 337Anwendung
Anzahl Aufrufparameter 163Aufbau 155Aufruf von Kommandozeile 161Aufrufkommando 163Aufrufparameter 160, 163Installation 164Minimal-Aufbau 155Ressource 164Rückgabeparameter 160, 163schließen 147Startdatei 159starten 157wird beendet 159, 161wird gestartet 159, 161
App.xaml 159, 161, 167App.xaml.cs 159, 162AppendBreak()
PromptBuilder 387, 389AppendText()
PromptBuilder 387AppendTextWithHint()
PromptBuilder 387, 389Application 157
Current.Resources 214Exit 159, 161Resources 168, 207Run() 157Startup 159, 161StartupUri 159
446
Index
ApplicationCommands 145Close 147
ApplicationExitCodeExitEventArgs 163
ArcSegment 255, 343IsLargeArc 256IsStroked 255Point 255RotationAngle 256Size 255SweepDirection 256
ArgsCount() 163StartupEventArgs 163
Arrange() 428Asterisk
SystemSounds 374Attached Event 27, 221Attached Property 23Audio-Ausgabe 371, 375Aufklappelement 108Auflistung 81
Anzahl Einträge 84eigener Typ 228Eintrag 81Eintrag einfügen 85Eintrag hinzufügen 84Eintrag löschen 85, 88leeren 85, 96Nummer eines Eintrags 95
Auflistungstyp 81Aufrufparameter 160Aufzählung
in Dokument 398, 403Ausrichtung 401
horizontal 49, 63vertikal 63
Ausrichtung des Inhaltshorizontal 63vertikal 63
Ausstanzung 283, 380Auswahl
einstellen 71Auswahlelement 68, 81AutoGenerateColumns
DataGrid 236
AutoReverseAnimationTimeline 337
AutoToolTipPlacementBottomRight 102Slider 102TopLeft 102
AxisAxisAngleRotation3D 323
AxisAngleRotationanimieren 357
AxisAngleRotation3D 322
B
BackEase 367Background 34, 55, 280BackgroundWorker 98
DoWork() 99IsBusy 99ProgressChanged 99ReportProgress() 99RunWorkerAsync() 99WorkerReportsProgress 99
BackMaterialGeometryModel3D 297
BalanceMediaPlayer 376
BasedOnStyle 199
BasedOnAlignmentGridResizeBehavior 49
BaselineAlignmentInline 415
Batch-Datei 161Baumstruktur 19Bedienbarkeit 56Beep
SystemSounds 374Begin()
Storyboard 343, 346BeginAnimation() 335BeginStoryboard 351, 355BeginStoryboardName 356BeginTime
AnimationTimeline 338TimeSeekOrigin 347
447
Index
Benannter Style 194vererben 198
Benutzeroberflächewechseln 212
Berührenbeenden 142beginnen 142
BerührungBildschirm 141Punkt 142
Berührungsempfindlich 139Beschriftung 71
einfach 71formatierte 73
BevelPenLineJoin 248
Bézier-Kurve 254BezierSegment 254Bild 128
als Farbpinsel 267Datenquelle 128Dehnung 128Größe 128in Dokument 413, 418neu laden 166
Bilddateiin Geometrie 260
Bildlaufleiste 103Binding 218
DataTrigger 239ElementName 218GetBinding() 222Mode 219Path 218Source 226UpdateSourceTrigger 220ValidationRules 222
BindingExpressionUpdateSource() 220
BindingOperations 219ClearAllBindings() 219ClearBinding() 219SetBinding() 219
Bindungan Geste 150an Maus 150an Taste 150
Bitmapeffekt 284BitmapImage 166BitmapSource 166BlackoutDates
Calendar 126Blickrichtung 292Block 81, 398
alle löschen 410BreakPageBefore 403gruppieren 402TextAlignment 401Verweis auf Element 402
BlockCollection 398Blocks 398
Add() 401Clear() 410ElementAt() 402FirstBlock 402LastBlock 402
Blocksatz 401BlockUIContainer 398, 410
ändern 412hinzufügen 412
BlurEffect 284Radius 285
BlurRadiusDropShadowEffect 285
Bogensegment 255Bogen sichtbar 255Drehrichtung 256Drehwinkel 256mehr als 180 Grad 256Radius 255Zielpunkt 255
Bold 74FontWeights 56Inline-Typ 413
bool? 67BooleanAnimationUsingKeyFrames 359Border 104
BorderBrush 104BorderThickness 104CornerRadius 104
BorderBrushBorder 104Tabelle 408
448
Index
BorderThicknessBorder 104Tabelle 408
BothTickPlacement 101
BottomCanvas 30
BottomRightAutoToolTipPlacement 102TickPlacement 101
BounceEase 367Bounces 367Bounciness 367
BouncesBounceEase 367
BouncinessBounceEase 367
BoxTextMarkerStyle 405
BreakPageBeforeBlock 403
Browser 130angezeigte Seite 130darf sich in History bewegen 131in History bewegen 131navigieren zu HTML-Code 130navigieren zu URI 130Seite ganz geladen 130Seite gewechselt 130
Browseranwendung 184Brush 55, 104, 262
DiffuseMaterial 293, 316GeometryDrawing 261
BrushesTransparent 104
Button 64Basistyp 201dauernd betätigen 65
ButtonBase 201ButtonState
MouseButtonEventArgs 138By
AnimationTimeline 334Byte 263ByteAnimation 333ByteAnimationUsingKeyFrames 359
C
Calendar 122BlackoutDates 126DisplayDate 124DisplayDateEnd 126DisplayDateStart 126FirstDayOfWeek 126SelectedDate 125SelectedDates 124SelectedDatesChanged 124SelectionMode 122
CalendarBlackoutDatesCollection 126CalendarDateRange 126CalendarSelectionMode 122Camera 292Cancel
CancelEventArgs 161CancelEventArgs 161
Cancel 161CanExecute
CommandBinding 147CanGoBack
NavigationService 179CanGoBack()
WebBrowser 131CanGoForward
NavigationService 179CanGoForward()
WebBrowser 131CanMinimize
ResizeMode 171CanResize
ResizeMode 171CanResizeWithGrip
ResizeMode 171CanUserAddRows
DataGrid 235CanUserDeleteRows
DataGrid 235CanUserReorderColumns
DataGrid 235CanUserResizeColumns
DataGrid 235CanUserResizeRows
DataGrid 235
449
Index
CanUserSortColumnsDataGrid 235
Canvas 30Bottom 30Left 30LeftProperty 32Right 30Top 30TopProperty 32
Cascading Style Sheets 194Cell
DataGridSelectionUnit 235CellOrRowHeader
DataGridSelectionUnit 235Cells
TableRow 407Center
EllipseGeometry 250RadialGradientBrush 266
CenterOwnerWindowStartupLocation 170, 175
CenterScreenWindowStartupLocation 170
CenterX/Y/ZRotateTransform3D 323ScaleTransform3D 319
ChangedButtonMouseButtonEventArgs 138
ChangesTextChangedEventArgs 79
CheckBox 66Basistyp 201Checked 67IsChecked 67IsThreeState 67Unchecked 67Zustand 67
CheckedCheckBox 67RadioButton 68ToggleButton 67
Child 19BlockUIContainer 410ElementHost 438PageContent 424WindowsFormsHost 431
Children 19Add() 33FixedPage 424Remove() 34, 59TransformGroup 279Viewport3D 293
Choices 396Circle
TextMarkerStyle 405CircleEase 367Clear()
Blocks 410Items 85, 96
ClearAllBindings()BindingOperations 219
ClearBinding()BindingOperations 219
ClearContent()PromptBuilder 386
ClickCountMouseButtonEventArgs 138
Client-Bereich 29Clip 283
MediaElement 380ClipboardCopyMode
DataGrid 235Close
ApplicationCommands 147Closed
ContextMenu 116Window 160
ClosingWindow 160
CLR-Property 22cm
Größe 401Code
mehrfach verwenden 166Collapsed
Expander 109TreeViewItem 92Visibility 57
Color 56DirectionalLight 297DropShadowEffect 285EmissiveMaterial 316FromArgb() 263, 435
450
Index
GradientStop 264PointLight 305SolidColorBrush 263SpecularMaterial 316
ColorAnimation 333, 349ColorAnimationUsingKeyFrames 359, 362ColorDialog 435Colors 56Column
Grid 43ColumnDefinitions
Count 45Grid 43
ColumnPropertyGrid 44
ColumnsDataGrid 236Table 407
ColumnSpanGrid 46TableCell 408
CombinedGeometry 251Geometry1 252Geometry2 252GeometryCombineMode 253
ComboBox 88Auswahl gewechselt 90editierbar 88Eintrag 89IsEditable 88SelectionChanged 90StaysOpenOnEdit 88Text 88Text der Auswahl 88Vorauswahl 90
ComboBoxItem 89ComboBoxStyleKey
ToolBar 120COM-Komponente 438Command 422
CommandBinding 147KeyBinding 150
CommandBinding 147CanExecute 147Command 147Executed 147
CommandBindings 147CommandLine
Environment 163Commands 146CommandTarget 422
KeyBinding 150ComponentCommands 145Condition
Property 206Value 206
ConditionsMultiTrigger 206
ContainerUIElement3D 310Content 54
ContentControl 210Label 71
ContentControl 210Content 210
ContentEndFlowDocument 423Paragraph 423
ContentStartFlowDocument 423Paragraph 423
ContextMenu 116Closed 116HorizontalOffset 116IsOpen 118Opened 116VerticalOffset 116
Control 166ModifierKeys 150
Control Template 207Definition 207in Typ-Style 211mit Property Trigger 208Triggers 209Zieleigenschaft 209Zuordnung 208
ControlTemplateTargetType 208Zieltyp 208
Copy 77CopyToOutputDirectory 164CornerRadius
Border 104
451
Index
CountRemovedItems 84SelectedDates 125
Count()Args 163
CSS 74, 194, 400CubicEase 367CurrentAndNext
GridResizeBehavior 49Cut 77
D
DataPath 250, 257
DataContext 227, 230, 232DataFormats 423DataGrid 232
ausgewählte Inhalte 237Auswahl gewechselt 236AutoGenerateColumns 236CanDeleteAddRows 235CanUserAddRows 235CanUserReorderColumns 235CanUserResizeColumns 235CanUserResizeRows 235CanUserSortColumns 235CheckBox 236ClipboardCopyMode 235Columns 236ComboBox 237Daten ändern 234Daten hinzufügen 235Daten löschen 235Datenquelle 233Datensätze auswählen 235eigenes Feld 237Felder übernehmen 236GridLinesVisibility 235HeadersVisibility 235Hyperlink 237IsReadOnly 234ItemsSource 233Köpfe sichtbar 235Kopiermodus 235Linien sichtbar 235SelectedItems 237SelectionChanged 236
SelectionMode 235SelectionUnit 235Spalte sortieren 235Spalten 236Spalten tauschen 235Spaltenbreite 235Spaltentypen 235Zeilenhöhe 235Zelle auswählen 235
DataGridCheckBoxColumn 236DataGridClipboardCopyMode 235DataGridComboBoxColumn 237DataGridGridLinesVisibility 235DataGridHeadersVisibility 235DataGridHyperlinkColumn 237DataGridSelectionMode 235DataGridSelectionUnit 235DataGridTemplateColumn 237DataGridTextColumn 236DataRowView 237
Row 237DataTable 232DataTemplate 237
DataType 238Triggers 239
DataTrigger 238Bedingung 239Binding 239Value 239
DataTypeDataTemplate 238
Datei öffnenDialogfeld 434
Dateiauswahl 186Daten
externe 217Datenbank 230
Adapter 232aktualisieren 234im DataGrid 232Provider 232SQL-Befehle 234Tabelle 232Verbindung 232
Datenbindung 217aktualisieren 220alle auflösen 219
452
Index
an Auflistung von Objekten 227an Datenbank 230, 232an ObjectDataProvider 229an Objekt 224eine auflösen 219ermitteln 222gebundene Eigenschaft 218gebundenes Element 218Kontext 226Label 72ListBox 228mit Data Template 238Quelle 224, 226Richtung 219setzen 219Validierung 222Zeitpunkt 220
Datenformat 423Datenquelle
Auflistung von Objekten 227Datenbank 230, 232Object Data Provider 229Objekt 224
DatePicker 126SelectedDate 127SelectedDateChanged 127SelectedDateFormat 127
DatePickerFormat 127DateTime 122, 124, 127DateTime? 125
auf Wert prüfen 127HasValue 127
Datum 122Datumsbereiche 122Datumswähler 126
ausgewähltes Datum 127Format 127Wechsel der Auswahl 127
Datumswerte 122DayOfWeek 126DecelerationRatio
AnimationTimeline 337DecimalAnimation 333DecimalAnimationUsingKeyFrames 359Dehnung 128Delegate 158delete
SQL 234
DeltaMouseWheelEventArgs 139
DeltaManipulationManipulationDeltaEventArgs 144
Dependency Property 21Wert ermitteln 32Wert setzen 32
Dialogfeldeigenes 173
DialogResult 434Window 175
Dicke 60, 62DictationGrammar 392DiffuseMaterial 293
Brush 293, 316Digitalisiertablett 139Direction
DirectionalLight 297DropShadowEffect 285SpotLight 304
DirectionalLight 297, 302Color 297Direction 297
DirectX 13Disc
TextMarkerStyle 405DiscreteDoubleKeyFrame 359DisplayDate
Calendar 124DisplayDateEnd
Calendar 126DisplayDateStart
Calendar 126DisplayMemberBinding
GridViewColumn 232Dock
DockPanel 40TabStripPlacement 111
DockPanel 39, 113, 118, 121Dock 40DockProperty 42LastChildFill 42
DockPropertyDockPanel 42
DocumentDocumentViewer 424
DocumentViewer 424
453
Index
DokumentAbsatz 400ändern 397, 420anzeigen 397Beginn 423blättern 399, 420dynamisches 397Ende 423formatieren 400, 420mit Element 410Position 423scrollen 399, 419Seite 424statisches 397zoomen 400zum Drucken 424
double? 335HasValue 337
DoubleAnimation 333, 334DoubleAnimationUsingKeyFrames 359DoubleAnimationUsingPath 368DoubleCollection 102DoWork()
BackgroundWorker 99Drag
SystemGesture 141Drag&Drop 164
ermöglichen 184DragMove()
Window 184DrawEllipse
DrawingContext 287Drawing 259DrawingContext 287
DrawEllipse 287DrawingGroup 260DrawingImage 261Drehbuch 341Drehung
2D-Grafik 2713D-Grafik 322Touchscreen 142
Dreidimensionale Grafik 289Dreidimensionale Landschaft 329Dreieck
in 3D-Grafik 290DropShadowEffect 284
Druckvorbereiten 426Warteschlange 426
Druckenvisuelles Objekt 426
Druckerangeschaltet 428Anzahl Jobs 428Dokumentgröße 428Druckbereich 428Name 428
DurationAnimationTimeline 337TimeSeekOrigin 347
Durchsichtigkeit 183, 280DynamicResource 168Dynamische Ressource 167, 168
E
EaseInEasingMode 364
EaseInOutEasingMode 364
EaseOutEasingMode 364
Easing Function 364Modus 364
EasingDoubleKeyFrame 359EasingFunctionBase 364EasingMode
in Easing Function 364echo off 161Ecke abrunden 104EditingCommands 146, 421
ToggleBold 148Effect 284Eigenschaft
Abhängigkeits- 21zentral definieren 194
Eigenschaftselement 21Eigenschaftswert
überschreiben 196Eingabegeste 149
hinzufügen 152Sammlung 152
Eingabestift 139
454
Index
ElasticEase 367Oscillations 367Springiness 367
Elementallgemeine Eigenschaften 53andocken 39Ausrichtung 62Außenabstand 36, 61ausstanzen 283bedienbares 56binden 219Breite 36, 54Datenkontext 227, 230drehen 271Eigenschaft 20einrahmen 104entfernen 59Fokus setzen 79gestalten 30, 207gruppieren 107hervorheben 104Hintergrund 280Hintergrundfarbe 34, 55Höhe 54im Layout 56in Dokument eingebettet 410in Dokument verankern 418in Raster anordnen 42in Text eingebettet 413Inhalt 54Innenabstand 59ist geladen 160ist initialisiert 160Kontext-Info 76letztes zum Füllen 42mit Bild 64mit Schatten 284Name 19neigen 276neu erzeugen 32positionieren 30Schriftart 55Schriftdehnung 55Schriftgewicht 55Schriftgröße 55Schriftstil 55sichtbares 56
skalieren 274stapeln 35stapeln mit Umbruch 37Stil 193Tastatursteuerung 64Template 208Transparenz 280übereinander 272übergeordnetes 25, 34, 94verschieben 277verwischen 284Vordergrundfarbe 55Zuordnung lösen 34zusammenfassen 104
ElementAt()Blocks 402Inlines 76
ElementHost 436ElementName 73
Binding 218Ellipse 242, 249
Größe 250Ort 250
EllipseGeometry 249Center 250RadiusX 250
EmissiveMaterial 314Color 316
EndPointLinearGradientBrush 264LineGeometry 250
EndStyle()PromptBuilder 387
EnvironmentCommandLine 163
Ereignisangehängtes 23, 27Auslöser 26Bearbeitungsreihenfolge 202Behandlung abbrechen 204geroutetes 25, 27in 3D-Grafik 309Registrierer 26Style für Reaktion 202wiederholen 65
Ereignishandler 25Ereignismethode 203
455
Index
Ereignisreihenfolge 158errorlevel 161EvenOdd
FillRule 259Event
EventSetter 203Event Trigger 350
als Ressource 351in Style 352steuert Animation 354zuordnen 355
EventArgs 26Event-Bubbling 26EventHandler
neu erzeugen 57EventSetter
Bearbeitungsreihenfolge 202Event 203Handler 203Style 202
EventTriggerRoutedEvent 351SourceName 355
Event-Tunneling 26Exclamation
SystemSounds 374Exclude
GeometryCombineMode 253Executed
CommandBinding 147Exit
Application 159, 161ExitEventArgs 160
ApplicationExitCode 163ExpandDirection
Expander 108Expanded
Expander 109TreeViewItem 92
Expander 108Aufklapprichtung 108Beschriftung 109Collapsed 109ExpandDirection 108Expanded 109Header 109in Windows Forms 436
IsExpanded 109ist aufgeklappt 109klappt auf 109klappt zu 109
ExpandSubtree()TreeViewItem 96
ExpansionVelocityManipulationVelocities 145
ExplicitUpdateSourceTrigger 220
Expliziter Style 194Exponent
ExponentialEase 368ExponentialEase 368
Exponent 368Extended
DataGridSelectionMode 235SelectionMode 85
eXtensible Application Markup Language 15
F
Farbe 56animieren 349, 362Komponente 263, 280konvertieren 435linearer Verlauf 263radialer Verlauf 265
Farbe auswählenDialogfeld 435
FarbverlaufÜbergangspunkt 264
Fenster 169Änderung der Größe 170Besitzer 174darf transparent sein 183eigenes Unterfenster 173Eigenschaft 169Ereignis 169Größe 169Größe anpassen 172Größe geändert 122Größe vorher, nachher 171Größe wurde geändert 171immer oben 171in Taskbar anzeigen 170
456
Index
ist entladen 160ist geladen 70, 122, 160ist geschlossen 160ist initialisiert 160, 214Layout-Aktualisierung 428modal anzeigen 174Navigation 175nicht-modal anzeigen 174Position wurde geändert 171Rahmenart 183Rückgabewert 175Schließen abbrechen 161Startposition 170Status 131Status wurde geändert 171Titel 169Unterfenster erzeugen 174versehentlich geschlossen 16wird geschlossen 160, 234
Fettschrift 56, 74, 148, 413FieldOfView
PerspectiveCamera 300Figure
Inline-Typ 413, 417FigureHorizontalAnchor 418Figures
PathGeometry 255FigureVerticalAnchor 418FilePrompt 384FileStream 185, 214Fill
Path 250Shape 243Stretch 128
Fill()OleDbAdapter 232
FillRuleGeometryGroup 259
FindResource() 169, 196Finger
Touch 141FirstBlock
Blocks 402FirstDayOfWeek
Calendar 126FixedDocument 424FixedPage 424
FlatPenLineCap 248
FlickSystemGesture 141
FlipXTileMode 269
FlipXYTileMode 269
FlipYTileMode 269
FlowDirectionStackPanel 36WrapPanel 38, 110
FlowDocument 81, 397FlowDocumentPageViewer 397, 420FlowDocumentReader 397, 398
ViewingMode 399FlowDocumentReaderViewingMode 399FlowDocumentScrollViewer 397, 419Focus() 79FolderBrowserDialog 434FontDialog 436FontFamily 54
TextElement 401FontSize 55, 401FontStretch 55FontStyle 55FontWeight 55Foreground 55Forever
Duration 337RepeatBehavior 337
Formatierung 400kaskadierende 74
Fortschrittist eingetreten 100Prozentsatz 100
Fortschrittsbalken 97Frame 180
Aufbau 181Datei 181erste 181Navigationsziel 181Source 181Titel 181
FromAnimationTimeline 334
457
Index
FromArgb()Color 263, 435
FullRowDataGridSelectionUnit 235
G
Gadget 182Geometrie 248
Füllregel 259gruppieren 258kombinierte 251kompakte Schreibweise 257komplexe 253Mengenlehre 253mit Bilddatei 260mit Schriftartzeichen 260mit Videodatei 260Teilfigur 253Teilsegment 254
Geometry 248, 283GeometryDrawing 261GeometryModel3D 293Viewport2DVisual3D 313
Geometry1CombinedGeometry 252
Geometry2CombinedGeometry 252
GeometryCombineModeCombinedGeometry 253
GeometryDrawing 261GeometryGroup 258
FillRule 259GeometryModel3D 293, 306
BackMaterial 297Transform 320
Gerichtetes Licht 297, 302Geste 149
Bindung 150hinzufügen 152Sammlung 152
GetAdornerLayer()AdornerLayer 286
GetBinding()Binding 222
GetInstalledVoicesSpeechSynthesizer 382
GetIntermediateTouchPoints()TouchEventArgs 142
GetPosition()MouseButtonEventArgs 138MouseEventArgs 122, 138MouseWheelEventArgs 139
GetTouchPoint()TouchEventArgs 142
GetType() 26GetValue() 22, 32, 136Glänzendes Material 314GlyphRunDrawing 260GoBack()
NavigationService 179WebBrowser 131
GoForward()NavigationService 179WebBrowser 131
GradientOriginRadialGradientBrush 266
GradientStop 264Color 264Offset 264
GradientStopCollection 265GradientStops
LinearGradientBrush 265Grafik 241, 289Grafik-Hardware 14GrammarBuilder 394, 396Grammatik
eigene 394laden 392, 396
Grid 42Anzahl der Spalten 45Anzahl der Zeilen 45Column 43ColumnDefinitions 43ColumnProperty 44ColumnSpan 46Row 43RowDefinitions 43RowProperty 44RowSpan 46Spalte hinzufügen 44Spalten 43Zeile hinzufügen 44Zeilen 43
458
Index
Zellen aufspannen 46Zellgröße 46Zellgröße flexibel 47
GridLength 408GridLinesVisibility
DataGrid 235GridResizeBehavior 49GridSplitter 47
HorizontalAlignment 49ResizeBehavior 49
GridUnitType 408GridView 232
Datenbindung 232Spaltenbeschriftung 232
GridViewColumn 232DisplayMemberBinding 232Header 232
Größenänderung2D-Grafik 2743D-Grafik 319Faktor 274Verhalten 49
GroupBox 107Beschriftung 108Header 108
GroupNameRadioButton 69
GuidStylusButton 141
Gültigkeitsbereich 166Style 198, 200
H
HandSystemSounds 374
HandledRoutedEventArgs 204
HandlerEventSetter 203
HasValueDateTime? 127double? 337
Hauptelement 19Hauptmenü 113Header
Expander 109GridViewColumn 232
GroupBox 108MenuItem 114RibbonMenuItem 189TabItem 111TreeViewItem 92
HeadersVisibilityDataGrid 235
Height 54Image 128ListBox 82RowDefinition 46SizeToContent 172Window 169
HiddenVisibility 57
Hierarchie 19, 25darstellen 90von Layouts 33
Hilfestellung 15Hintergrund
durchsichtiger 280Hintergrundvorgang 98
berichtet 99darf berichten 99ist tätig 99starten 99Zustand geändert 99
HistoryNavigation 177
HoldEnterSystemGesture 141
HorizontalOrientation 36
HorizontalAlignment 63GridSplitter 49Stretch 49
HorizontalAnchorFigure 418
HorizontalContentAlignment 63HorizontalOffset
ContextMenu 116HoverEnter
SystemGesture 141HoverLeave
SystemGesture 141Hyperlink 178
Inline-Typ 413NavigateUri 178, 182
459
Index
TargetName 182Ziel 178, 182Zielframe 182
I
IAddChild 426Icon
MenuItem 114Image 65, 128
Height 128Source 65, 128, 166, 261Stretch 128Width 128
ImageBrush 267für 3D-Grafik 319ImageSource 267TileMode 267Viewbox 267ViewboxUnits 269Viewport 267ViewportUnits 269
ImageDrawing 260ImageSource 128
ImageBrush 267RibbonMenuItem 189
Impliziter Style 197in
Größe 401InAir
StylusEventArgs 140Inch 401IndexOf()
Items 95Ingebretsen 17Initialized
Element 160Window 160, 214
InitialVelocitiesManipulationInertiaStartingEventArgs
145Inline 398
BaselineAlignment 415TextDecorations 415
InlineCollection 73, 398, 412Inlines 73
Add() 75ElementAt() 76
InsertAfter() 75InsertBefore() 75Paragraph 398, 412
InlineUIContainerInline-Typ 413
InnerConeAngleSpotLight 304
InputBindings 150InputGestureCollection 152
Add() 152insert
SQL 234Insert()
Items 85, 95InsertAfter()
Inlines 75InsertBefore()
Inlines 75Installation 164Int16Animation 333Int16AnimationUsingKeyFrames 359Int32Animation 333Int32AnimationUsingKeyFrames 359Int32Collection 293
Add() 295Int64Animation 333Int64AnimationUsingKeyFrames 359IntelliSense 15Interoperabilität 431Intersect
GeometryCombineMode 253Inverted
StylusEventArgs 140IsBusy
BackgroundWorker 99IsCancel 65IsCheckable
MenuItem 114IsChecked
CheckBox 67MenuItem 116RadioButton 69ToggleButton 67
IsClosedPathFigure 255
IsDefault 65
460
Index
IsEditableComboBox 88
IsEnabled 57SpellCheck 78
IsEnabledPropertySpellCheck 79
IsExpandedExpander 109TreeViewItem 92
IsFilledPathFigure 255
IsIndeterminateProgressBar 98
IsLargeArcArcSegment 256
IsLoadedWindow 70
IsLockedToolBarTray 118
IsManipulationEnabled 142IsMoveToPointEnabled
Slider 102IsMuted
MediaPlayer 375IsOpen
ContextMenu 118IsPageViewEnabled
FlowDocumentReader 400IsReadOnly
DataGrid 234IsRepeat
KeyEventArgs 134IsScrollViewEnabled
FlowDocumentReader 400IsSelected
Selector 83, 87, 90, 112TreeViewItem 92
IsSelectionRangeEnabledSlider 102
IsSnapToTickEnabledSlider 102
IsStrokedArcSegment 255LineSegment 255
IsThreeStateCheckBox 67ToggleButton 67
IsTwoPageViewEnabledFlowDocumentReader 400
IsVisualHostMaterialViewport2DVisual3D 313
Italic 74FontStyles 56Inline-Typ 413
ItemCollection 81ItemHeight
WrapPanel 38Items 81
Add() 84, 95Clear() 85, 96Count 84IndexOf() 95Insert() 85, 95Remove() 85, 88, 96
ItemsSourceDataGrid 233ListView 231
ItemWidthWrapPanel 38
J
JustifyTextAlignment 401
K
Kachel 267Kalender 122
Anzahl ausgewählte Daten 125Anzeigedatum 124ausgeschlossene Daten 126ausgewählte Daten 124ausgewähltes Datum 125Auswahlmodus 122Datumsbereich 126erster Wochentag 126Grenzwerte 126Wechsel der Auswahl 124
KameraBlickrichtung 292für 3D-Grafik 292, 299perspektivische 299Position 292Sichtfeld 293
461
Index
Kameralagefür 3D-Grafik 296, 301
Kaskadierend 74Kaxaml 17KeepTogether
Paragraph 401KeepWithNext
Paragraph 401Key 133
KeyBinding 150KeyBinding 150
Command 150CommandTarget 150Key 150Modifiers 150
KeyDown 133KeyEventArgs 133
IsRepeat 134RoutedEvent 134
Keyframes 333, 359KeyGesture 152KeySpline
SplineDoubleKeyFrame 362KeyTime
für KeyFrame 359Paced 360Uniform 360
KeyUp 133Kombinierte Geometrie 251Kommando 145, 422
ausführen 147Bindung 147darf ausgeführt werden 147geroutetes 152Sondertaste 150Tastenbindung 150Ziel 422Zielelement 150
Kommandozeile 161Komplexe Geometrie 253Kontextmenü 116
Eintrag 116ist offen 118öffnet sich 116Platzierung 116schließt sich 116synchron halten 116
Koordinatensystem 289Kopieren
in Ausgabeverzeichnis 164Kursivschrift 56, 74, 413
L
Label 71Content 71Datenbindung 72Inhalt 71Target 72
Landschaftin 3D-Grafik 329
LargeChangeScrollBar 103Slider 100
LargeImageSourceRibbon 189
LastBlockBlocks 402
LastChildFillDockPanel 42
Laufleiste 35Laufzeit 167Lautstärke
Mediendatei 376Sprachausgabe 382Sprache 389
Layerfür Verzierung 286
Layout 29Basisklasse 29Hierarchie 33kombinieren 49
LayoutTransform 271, 273Left
Canvas 30LeftClick
MouseAction 150LeftDoubleClick
MouseAction 150LeftProperty
Canvas 32LeftToRight
FlowDirection 36Leinwand
für 3D-Grafik 292
462
Index
Leiste 113Lernprogramm
für Spracherkennung 390Licht 293
für 3D-Grafik 297, 302Lichtkegel 302Line 244
Koordinaten 244LinearDoubleKeyFrame 359Linearer Farbverlauf 263LinearGradientBrush 263
EndPoint 264für 3D-Grafik 319GradientStops 265StartPoint 264
LinearVelocityManipulationVelocities 145
LineBreak 65, 74Inline-Typ 413
LineGeometry 249EndPoint 250StartPoint 250
LineSegment 255IsStroked 255Point 255
Linie 244, 249Endpunkt 250Startpunkt 250
Linienende 247Liniensegment 255
Linie sichtbar 255Zielpunkt 255
ListBlock-Typ 398, 403MarkerOffset 405MarkerStyle 405StartIndex 405
ListBox 82ausgewählte Einträge 83, 87Auswahl gewechselt 83Datenbindung 228Eintrag 82Eintrag auswählen 84Eintrag sichtbar machen 84Mehrfachauswahl 85nicht mehr ausgewählter Eintrag 83
Nummer des ausgewählten Eintrags 83raumsparende Variante 88ScrollIntoView() 84SelectedIndex 83SelectedItem 83SelectedItems 87Selection_Changed 83SelectionMode 85Vorauswahl 83, 87
ListBoxItem 82Selected 83Unselected 83
Liste 82ändern 406hinzufügen 406in Dokument 403markieren 405Markierungsabstand 405
ListItem 405ListItemCollection 405ListView 230
Darstellung 231Datenquelle 231füllen 232ItemsSource 231View 231
Load()SoundPlayer 371TextRange 423XamlReader 214
LoadAsync()SoundPlayer 372
LoadCompletedWebBrowser 130
LoadedElement 160Window 122, 160
LoadGrammar() 392SpeechRecognitionEngine 396
LocationChangedWindow 171
Logische Ressource 166Long
DatePickerFormat 127LookDirection
OrthographicCamera 292PerspectiveCamera 300
463
Index
LostFocusUpdateSourceTrigger 220
LowerLatinTextMarkerStyle 405
LowerRomanTextMarkerStyle 405
M
Magere Schrift 56Main()
Window 157MainWindow.xaml 167Manipulation
Ereignis 141, 142erlaubt 142Trägheit 142
ManipulationBoundaryFeedback 143ManipulationCompleted 143, 145ManipulationCompletedEventArgs 145ManipulationDelta 142, 144ManipulationDeltaEventArgs 144ManipulationInertiaStarting 142, 144ManipulationInertiaStartingEventArgs 145ManipulationOrigin 144ManipulationStarted 142, 144ManipulationStarting 142, 144ManipulationVelocities 145Manual
SizeToContent 172WindowStartupLocation 170
Margin 36, 61MarkerOffset
List 405MarkerStyle
List 405Markup Extension 24, 218Maske 281Material 293
für 3D-Grafik 313GeometryModel3D 293
MaterialGroup 314MatrixAnimationUsingKeyFrames 359MatrixAnimationUsingPath 368Maus 136
Anzahl Clicks 138bewegt 122
Bindung 150Buttonstatus 138Click-Arten 150Ereignis 138erweiterte Taste 138Position 122, 138, 139welcher Button 138
Mausaktion 149, 152Mausrad
Änderung 139Click 150Ereignis 139Info über 136
MaustasteEreignis 138Info über 136
MaximizedWindowState 131, 171
MaximumProgressBar 98ScrollBar 104Slider 100
MaxLengthTextBox 80
Measure() 428MediaCommands 146MediaElement 378, 380MediaFailed
MediaElement 379MediaPlayer 375MediaTimeline 379Mediendatei
abspielen 375, 378, 380Fehler anzeigen 379
Menu 113Eintrag 113
Menü 113Platzierung 113
Menüband 186MenuItem 113, 116
Beschriftung 114Bild 114Header 114Icon 114IsCheckable 114IsChecked 116markierbares 114markiertes 116
464
Index
MeshGeometry3D 293TextureCoordinates 313
Microsoft Excel 14.0 Object Library 438Microsoft Ribbon for WPF.msi 186Microsoft Word 14.0 Object Library 438Microsoft.Jet.OLEDB.4.0 232Microsoft.Office.Interop 439Microsoft.Windows.Controls.Ribbon 189MiddleClick
MouseAction 150MiddleDoubleClick
MouseAction 150Mikro 390
setzen 393Minimized
WindowState 171Minimum
ProgressBar 98ScrollBar 104Slider 100
MiterPenLineJoin 248
Modales Fenster 174Mode
Binding 219Model3DCollection 308Model3DGroup 306Modell
für 3D-Grafik 306ModelUIElement3D 309
MouseEnter 310MouseLeave 310
ModelVisual3D 293ModifierKeys 150Modifiers
KeyBinding 150MouseAction
MouseBinding 150MouseBinding 150
MouseAction 150MouseButton 138MouseButtonEventArgs 136
ButtonState 138ChangedButton 138ClickCount 138GetPosition() 138RoutedEvent 138
MouseButtonState 138
MouseDown 26, 137MouseEnter 137
ModelUIElement3D 310MouseEventArgs 122, 136
GetPosition() 122, 138RoutedEvent 138
MouseGesture 152MouseLeave 137
ModelUIElement3D 310MouseMove 138
Window 122MouseUp 137MouseWheel 137MouseWheelEventArgs 136
Delta 139GetPosition() 139RoutedEvent 139
MP3-Dateiabspielen 376, 378
MPG-Dateiabspielen 380
MS Access 230MS Excel
Mappe erzeugen 439MS Excel 2010 438MS Office
in WPF 438MS Word
Dokument erzeugen 441MS Word 2010 438MS.Internal.NamedObject 237Multiple
SelectionMode 85MultipleRange
CalendarSelectionMode 123Multitouch
Ereignis 141Multi-Trigger 205MultiTrigger 206
Conditions 206
N
Name 19StylusButton 141
Namespaceeinbinden 20, 153lokaler 153, 226
465
Index
Navigate()NavigationService 178WebBrowser 130
NavigatedWebBrowser 130
NavigateToString()WebBrowser 130
NavigateUriHyperlink 178, 182
Navigation 175History 177Vorwärts, Rückwärts 177
NavigationCommands 146Navigationsdienst 178NavigationService 185
CanGoBack 179CanGoForward 179GoBack() 179GoForward() 179Navigate() 178Page 178
Navigationshost 184NavigationWindow 176, 177, 181
Source 177, 181Title 181
Neigung2D-Grafik 276Winkel 276
new 33NewSize
SizeChangedEventArgs 171Nicht definiert 67, 68None
Stretch 128NonZero
FillRule 259NoResize
ResizeMode 171Normal
FontStyles 56FontWeights 56WindowState 171
NoWrapTextWrapping 74
null 68, 125, 335
O
Oberflächegestalten 29
object 71, 81, 114ObjectAnimationUsingKeyFrames 359ObjectDataProvider 230ObjectInstance
ObjectDataProvider 230Objekt
Ereignisauslöser 27Oblique
FontStyles 56ObservableCollection 228Offset
GradientStop 264SeekStoryboard 356TextChange 79
OffsetX/Y/ZTranslateTransform3D 321
OldValueRoutedPropertyChangedEventArgs 92, 103
OleDbAdapter 232Fill() 232Update() 234
OleDbCommandBuilder 234OleDbConnection 232OneTime
Mode 220OneWay
Mode 220OneWayToSource
Mode 220OnRender()
Adorner 287Opacity 280
DropShadowEffect 285OpacityMask 281Opazität 280Open()
MediaPlayer 375Opened
ContextMenu 116OpenFileDialog 434Orientation
ProgressBar 97ScrollBar 104
466
Index
Slider 100StackPanel 36ToolBarTray 118WrapPanel 38
OrthographicCamera 292UpDirection 296, 301
Orthographische Kamera 292Oscillations
ElasticEase 367OuterConeAngle
SpotLight 304Owner
Window 174
P
PacedKeyTime 360
Padding 59Page 176, 178
FlowDocumentReaderViewingMode 399NavigationService 178WindowTitle 178
PageContent 424PageContentCollection 424Pages
FixedDocument 424Panel 29
ZIndex 30, 272ZIndexProperty 32
Paragraph 81, 398, 400KeepTogether 401KeepWithNext 401TextIndent 401
Parent 34, 94Parse()
TimeSpan 339PasswordBox
PasswordChar 80PasswordChar
PasswordBox 80Paste 77Path 250
Binding 218Data 250, 257Fill 250Stroke 250StrokeThickness 250
PathFigure 253IsClosed 255IsFilled 255StartPoint 255
PathFigureCollection 253PathGeometry 253, 343
Figures 255PointAnimationUsingPath 369zur Animation 368
PathSegmentCollection 254Add() 256
Pause()MediaPlayer 375SpeechSynthesizer 382Storyboard 347
PauseStoryboard 356Pen
GeometryDrawing 261PenLineCap 248PenLineJoin 248PerspectiveCamera 300Perspektivische Kamera 299Pfadanimation 368Pfadgeometrie 253, 283Pfadmarkupsyntax 257, 283Physische Ressource 164Pinsel 262
einheitliche Farbe 262linearer Farbverlauf 263radialer Farbverlauf 265
Pinseltyp 56Pixel 401
GridUnitType 408Play()
MediaPlayer 375SoundPlayer 166, 371SystemSound 375
PlayLooping()SoundPlayer 371
PlaySync()SoundPlayer 371
Point 246, 250ArcSegment 255LineSegment 255relative Koordinaten 263
Point3D 292, 293
467
Index
Point3DCollection 293Add() 295
PointAnimation 333, 340PointAnimationUsingKeyFrames 359PointAnimationUsingPath 368
PathGeometry 369PointCollection 246, 313
Add() 247PointLight 302Points
Polygon 246PolyBezierSegment 254Polygon 245
Points 246Polyline 245PolyLineSegment 254, 258Polylinie 245PolyQuadraticBezierSegment 254Position
MediaPlayer 375MeshGeometry3D 293OrthographicCamera 292PerspectiveCamera 300PointLight 305SpotLight 304TouchPoint 142
Positionierungfest 30
PowerPowerEase 367
PowerEase 367Power 367
PresentationCore 436PresentationFramework 436Pressed
MouseButtonState 138Preview-Ereignishandler 25PreviewMouseDown 26PreviousAndCurrent
GridResizeBehavior 49PreviousAndNext
GridResizeBehavior 49PreviousSize
SizeChangedEventArgs 171Primitives 68PrintDialog 426
PrintQueuePrintDialog 426
PrintVisual()PrintDialog 426
ProgressBar 97Grenzwerte 98IsIndeterminate 98Lage 97Maximum 98Minimum 98Orientation 97undefinierter Zustand 98Value 98Werte 98
ProgressChangedBackgroundWorker 99
ProgressChangedEventArgs 100ProgressPercentage 100
ProgressPercentageProgressChangedEventArgs 100
ProjektDatenbank hinzufügen 231, 233, 235Element hinzufügen 164Fenster hinzufügen 173neu erzeugen 16Ressource 164Ressourcen-Wörterbuch hinzufügen 213Seite hinzufügen 178speichern 16WAV-Datei hinzufügen 372
Projektmappenexplorer 16, 164PromptBreak 389PromptBuilder 386
AppendBreak() 389AppendTextWithHint() 389ToXml() 389
PromptRate 388PromptStyle 386
StartStyle() 388PromptVolume 389Property 22
Condition 206Setter 195Trigger 205
Property Element 21Property Trigger 204, 238
in Control Template 208mehrere Bedingungen 205
468
Index
PropertyChangedUpdateSourceTrigger 220
PropertyPath 219Provider 232pt
Größe 401Punkt
Größe 401im 3D-Raum 292
Punktlicht 302px
Größe 401
Q
QuadraticBezierSegment 254QuadraticEase 367qualified double 401QuarticEase 367QuaternionAnimation 333QuaternionAnimationUsingKeyFrames 359QuaternionRotation3D 322Question
SystemSounds 374QuickInfo 76QuinticEase 367
R
Radialer Farbverlauf 265RadialGradientBrush 265
Center 266für 3D-Grafik 319GradientOrigin 266
RadioButton 69Basistyp 201Checked 68GroupName 69gruppieren 69, 107IsChecked 69Unchecked 68Zustand 68
RadiusBlurEffect 285
RadiusXEllipseGeometry 250RectangleGeometry 250
RadiusYRectangleGeometry 250
Rahmen 104Dicke 104durchsichtig 104Eckenradius 104Farbe 104
RatePromptRate 388
Rechteck 242, 249Eckenabrundung 250Ort und Größe 250
Rechtschreibungprüfen 79
RecognitionResult 392RecognizeAsync()
SpeechRecognitionEngine 394RecognizeAsyncCancel()
SpeechRecognitionEngine 394RecognizeMode 394Rect 250
RectangleGeometry 250Rectangle 242RectangleGeometry 249
RadiusX 250RadiusY 250Rect 250
RectAnimation 333RectAnimationUsingKeyFrames 359Registerkarte 111Reiter
Registerkarte 111Relative
UriKind 166, 179Released
MouseButtonState 138Remove()
Children 34, 59Items 85, 88, 96
RemovedItemsCount 84SelectionChangedEventArgs 83
RemovedLengthTextChange 79
RenderSizeAdornedElement 287
469
Index
RenderTransform 271RenderTransformOrigin 271
RenderTransformOriginRenderTransform 271
RepeatBehaviorAnimationTimeline 337
RepeatButton 65, 103ReportProgress()
BackgroundWorker 99ResizeBehavior
GridSplitter 49ResizeMode
Window 170Resource Dictionaries 169Resources
Application 168, 207Window 168
Ressource 164aktuell 214Auflistung von Objekten 228dynamische 167, 168Event Trigger 351für gesamte Anwendung 167, 207logische 166nur für Fenster 167Objekt 226physische 164Schlüssel 167statische 167, 168Storyboard 341Style 195suchen 169, 196Wörterbuch 169Wörterbuch hinzufügen 213zur Laufzeit tauschen 167
ResultSpeechRecognizedEventArgs 392
Resume()SpeechSynthesizer 382Storyboard 347
ResumeStoryboard 356RGB-Komponente 263, 280Ribbon 187
Anwendungsmenü 187Registerkarte 187
Ribbonanwendung 186RibbonApplicationMenu 187RibbonApplicationMenuItem 189
RibbonButton 189RibbonCheckBox 190RibbonComboBox 190RibbonControlsLibrary 186RibbonGallery 190RibbonGalleryCategory 190RibbonGalleryItem 190RibbonGroup 187RibbonMenuButton 190RibbonMenuItem 189, 190RibbonRadioButton 190RibbonTab 187RibbonToggleButton 190RibbonWindow 187, 189RichTextBox 80, 397, 420Richtung
im 3D-Raum 292Right
Canvas 30RightClick
MouseAction 150RightDoubleClick
MouseAction 150RightDrag
SystemGesture 141RightTap
SystemGesture 141RightToLeft
FlowDirection 36RotateTransform 271
Angle 271, 272, 274RotateTransform3D 322Rotation
2D-Grafik 2713D-Grafik 322Drehpunkt 271Drehwinkel 271in 3D-Grafik animieren 356ManipulationDelta 144
Rotation3DAnimation 333Rotation3DAnimationUsingKeyFrames 359RotationAngle
ArcSegment 256Rotationsgruppe
3D-Grafik 327Round
PenLineCap 248PenLineJoin 248
470
Index
Routed Events 25RoutedCommand 152RoutedEvent 26
EventTrigger 351KeyEventArgs 134MouseButtonEventArgs 138MouseEventArgs 138MouseWheelEventArgs 139
RoutedEventArgs 27Handled 204Source 113
RoutedEventHandlerneu erzeugen 58, 157
RoutedPropertyChangedEventArgs 92, 103OldValue 92, 103
RowDataRowView 237Grid 43
RowDefinitionsCount 45Grid 43
RowGroupsTable 407
RowPropertyGrid 44
RowsTableRowGroup 407
RowSpanGrid 46TableCell 408
Rückgabeparameter 160, 163Rückwärts
Navigation 177Run 74, 401
Inline-Typ 413Run()
Application 157RunWorkerAsync()
BackgroundWorker 99
S
Save()TextRange 423
SayAs 389Scale
ManipulationDelta 144
ScaleTransform 274ScaleX 274ScaleY 274
ScaleTransform3D 319ScaleX/Y
ScaleTransform 274ScaleX/Y/Z
ScaleTransform3D 319Schaltfläche 64Schieber
Slider 100Schiene
Slider 100Schlagschatten 284Schlüssel
Control Template 207Ressource 167Style 195
Schriftformatieren 422hochgestellt 415konvertieren 436tiefgestellt 415
Schrift auswählenDialogfeld 433, 436
Schriftart 401Schriftartzeichen
in Geometrie 260Schriftgröße 401Schriftposition
vertikal 415Schriftverzierung 415Scroll
FlowDocumentReaderViewingMode 399Scrollbalken
ListBox 82ScrollBar 103
Grenzwerte 104große Änderung 103kleine Änderung 103Lage 104LargeChange 103Maximum 104Minimum 104Orientation 104SmallChange 103ValueChanged 104Wert geändert 104
471
Index
ScrollIntoView()ListBox 84
ScrollViewer 35Sichtbarkeit 36
Section 398, 402SecurityException 186Seek()
Storyboard 347SeekStoryboard 356
Offset 356SeekToFill()
Storyboard 347Seite 178
darf in History bewegen 179Daten übermitteln 179der Reihe nach 176erste 177in Frames 180in History bewegen 179Navigation 175wechseln 178
Seitenumbruch 403SelectAll()
TextBox 79Selected
ListBoxItem 83TreeViewItem 92
SelectedDateCalendar 125DatePicker 127
SelectedDateChangedDatePicker 127
SelectedDateFormatDatePicker 127
SelectedDatesCalendar 124Count 125
SelectedDatesChangedCalendar 124
SelectedDatesCollection 124SelectedIndex
ListBox 83TabControl 111
SelectedItemListBox 83
SelectedItemChangedTreeView 92
SelectedItemsDataGrid 237ListBox 87
SelectedTextTextBox 79
SelectedValueRibbonGallery 190
SelectedValuePathRibbonGallery 190
Selection_ChangedListBox 83TabControl 111
SelectionChangedComboBox 90DataGrid 236RibbonGallery 190
SelectionChangedEventArgs 83RemovedItems 83
SelectionEndSlider 102
SelectionLengthTextBox 80
SelectionModeCalendar 122DataGrid 235ListBox 85
SelectionStartSlider 102TextBox 80
SelectionUnitDataGrid 235
SelectorIsSelected 83, 87, 90, 112
SelectVoice()SpeechSynthesizer 382
sender 26Separator 62, 114SetBinding() 219
BindingOperations 219SetInputToDefaultAudioDevice()
SpeechRecognitionEngine 393SetOutputToDefaultAudioDevice()
SpeechSynthesizer 382SetOutputToWaveFile()
SpeechSynthesizer 382SetSpeedRatio()
Storyboard 347
472
Index
SetStoryboardSpeedRatio 356SpeedRatio 356
SetTargetName()Storyboard 345
SetTargetProperty()Storyboard 345
Setter 195Property 195TargetName 209Value 195
SetValue() 22, 32, 136ShadowDepth
DropShadowEffect 285Shape 241
Fill 243Füllfarbe 243Liniendicke 243Linienende 247Linienfarbe 243Stroke 243StrokeEndLineCap 247StrokeLineJoin 247StrokeStartLineCap 247StrokeThickness 243
ShiftModifierKeys 150
ShortDatePickerFormat 127
Show()Window 174
ShowDialog()PrintDialog 426Standard-Dialogfeld 434Window 174
ShowInTaskbarWindow 170
Sicherheitseinschränkung 185Sichtbarkeit 56, 108, 121, 122Sichtfeld 293SineEase 367Single
DataGridSelectionMode 235SelectionMode 85
SingleAnimation 333SingleAnimationUsingKeyFrames 359SingleBorderWindow
WindowStyle 183
SingleDateCalendarSelectionMode 123
SingleRangeCalendarSelectionMode 123
Single-Threaded Apartment Thread 156Size 255
ArcSegment 255SizeAnimation 333, 343SizeAnimationUsingKeyFrames 359SizeChanged
Window 122, 171SizeChangedEventArgs 171SizeToContent
Window 172Skalierung
2D-Grafik 2743D-Grafik 319Touchscreen 142
SkewTransform 276AngleX 276AngleY 276
Skin 212SkipStoryboardToFill 356Sleep()
Thread 98Slider 100
AutoToolTipPlacement 102Bereich markiert 102Grenzwerte 100große Änderung 100IsMoveToPointEnabled 102IsSelectionRangeEnabled 102IsSnapToTickEnabled 102Lage 100LargeChange 100Markierungsgrenze 102Maximum 100Minimum 100Orientation 100SelectionEnd 102SelectionStart 102Skala 102Skala, Platzierung 100Skala, Strichdichte 101springt nur zu Skalenstrich 102springt zu Mausposition 102TickFrequency 101
473
Index
TickPlacement 100Ticks 102ToolTip, Platzierung 102Value 100ValueChanged 100Wert 100Wert geändert 100
SmallChangeScrollBar 103
SmallImageSourceRibbon 189
SolidColorBrush 56, 262Color 263
SondertasteKommando 150
Sonderzeichenanzeigen 66
SoundLocationSoundPlayer 166, 372
SoundPlayer 166, 371Play() 166SoundLocation 166
SoundPlayerAction 375Source
Binding 226Frame 181Image 65, 128, 166, 261MediaElement 379MediaTimeline 379NavigationWindow 177, 181RoutedEventArgs 113SoundPlayerAction 375WebBrowser 130
SourceNameEventTrigger 355
SpanInline-Typ 413
Speak()SpeechSynthesizer 382
SpeakAsync()SpeechSynthesizer 382
SpeakCompletedEventHandler 386SpeechSynthesizer 382
SpecularMaterial 314Color 316SpecularPower 316
SpecularPowerSpecularMaterial 316
Speech Recognition Grammar Specification 394
Speech Synthesis Markup Language 384, 386
SpeechRecognitionEngine 392RecognizeAsync() 394RecognizeAsyncCancel() 394SetInputToDefaultAudioDevice() 393
SpeechRecognizedSpeechRecognizer 392
SpeechRecognizedEventArgs 392SpeechRecognizer 392SpeechSynthesizer 381SpeedRatio
MediaPlayer 376SetStoryboardSpeedRatio 356
SpellCheck 78IsEnabled 78IsEnabledProperty 79
Spielerei 182SplineDoubleKeyFrame 359
KeySpline 362SpotLight 302Sprache
Art der Ausgabe 389aus Datei 384Ausgabe gemäß W3C 386ausgeben 381Eingabe gemäß W3C 394Eingabegerät 393eingeben 390erkennen 390Pause 389speichern in SSML 387, 389speichern in WAV 382steuert Anwendung 394Zuhören beenden 394Zuhören starten 394zusammensetzen 381, 386
Spracherkennungeinschalten 391integrierte 392von Windows 390
Sprachgeschwindigkeit 388Sprachlautstärke 389
474
Index
Sprachstil 388Springiness
ElasticEase 367SQL-Befehl 234Square
PenLineCap 248TextMarkerStyle 405
SRGS 394SSML 386Ssml
SynthesisMediaType 384StackPanel 35
Orientierung 36Richtung 36
Standard-Dialogfeld 185, 432Rückgabewert 434
StarGridUnitType 408
StartIndexList 405
StartPointLinearGradientBrush 264LineGeometry 250PathFigure 255
StartStyle()PromptBuilder 386PromptStyle 388
StartupApplication 159, 161
StartupEventArgs 160Args 163
StartupUriApplication 159
StateChangedWindow 171
STAThread 156StaticResource 168Statische Ressource 167, 168StatusBar 121Statusleiste 121
Platzierung 121StaysOpenOnEdit
ComboBox 88Stern
Größenangabe 408Steuerelement
anordnen 29Gruppen 53
Stiftberührt 140schwebt 140
Stop()MediaPlayer 375SoundPlayer 371Storyboard 347
StopStoryboard 356Storyboard 341
als Ressource 341Begin() 343, 346für Mediendatei 380Pause() 347Resume() 347Seek() 347SeekToFill() 347SetSpeedRatio() 347SetTargetName() 345SetTargetProperty() 345Stop() 347TargetName 343TargetProperty 343
Strahlendes Material 314Stretch 128
HorizontalAlignment 49, 63Image 128VerticalAlignment 63
StringAnimationUsingKeyFrames 359, 363Stroke
Path 250Shape 243
StrokeEndLineCapShape 247
StrokeLineJoinShape 247
StrokeStartLineCapShape 247
StrokeThicknessPath 250Shape 243
Style 193, 400abgeleiteter Style 199als Ressource 195BasedOn 199Basis-Style 199benannter 194Definition 195
475
Index
Eigenschaft 195Eigenschaftswert 195EventSetter 202expliziter 194für Typ 197für verwandte Typen 200Gültigkeitsbereich 198, 200impliziter 197mit Event Trigger 352Sammlung 212Schlüssel 195TargetType 197Triggers 205vererben 198, 199Ziel 197Zuordnung 196, 197
Stylus 139Anzahl der Tipps 141Geste 141Schaltfläche 140, 141
StylusButtonGuid 141Name 141StylusButtonState 141
StylusButtonDown 140StylusButtonState
StylusButton 141StylusButtonUp 140StylusDevice
StylusEventArgs 140StylusDown 140StylusDownEventArgs
TapCount 141StylusEnter 140StylusEventArgs
InAir 140Inverted 140StylusDevice 140
StylusInAirMove 140StylusInRange 140StylusLeave 140StylusMove 140StylusOutOfRange 140StylusSystemGesture 140StylusSystemGestureEventArgs
SystemGesture 141
StylusUp 140Subscript
BaselineAlignment 415Superscript
BaselineAlignment 415SweepDirection
ArcSegment 256Symbolleiste 118
Platzierung 118Styles 120
Symbolleistencontainer 118ist gesperrt 118Lage 118
SynthesisMediaType 384System 124, 156System.Collections.ObjectModel 228System.Component.Model 98, 161System.Data 232System.Data.OleDb 232System.Drawing 433System.Drawing.Color 435System.Drawing.Font 436System.IO 185, 214, 377System.Media 166, 384System.Printing 426System.Speech 390System.Speech.Recognition 390System.Speech.Synthesis 381System.Threading 98System.Windows 156System.Windows.Controls 158, 224System.Windows.Controls.Primitives 68System.Windows.Forms 185, 431System.Windows.Input 152System.Windows.Markup 215, 425System.Windows.Media.Animation 333System.Windows.Media.Media3D 289System.Xaml 436SystemGesture
StylusSystemGestureEventArgs 141SystemSound 374
Play() 375SystemSounds 374Systemton
abspielen 374
476
Index
T
TabControl 111Auswahl gewechselt 111Nummer der ausgewählten Karte 111Platzierung 111SelectedIndex 111Selection_Changed 111TabStripPlacement 111
Tabelle 398, 407ändern 410hinzufügen 409Rahmen 408Spalte 407Zeile 407Zeilengruppe 407Zelle 407Zellen überspannen 408
TabItem 111Beschriftung 111Header 111
Table 398, 407Columns 407RowGroups 407
TableCell 407ColumnSpan 408RowSpan 408
TableCellCollection 407TableColumnCollection 407TableRow 407
Cells 407TableRowCollection 407TableRowGroup 407
Rows 407TableRowGroupCollection 407TabStripPlacement
Dock 111TabControl 111
TapSystemGesture 141
TapCountStylusDownEventArgs 141
TargetLabel 72
TargetNameHyperlink 182Setter 209Storyboard 343
TargetPropertyStoryboard 343
TargetTypeControlTemplate 208Style 197
Tastatur 133Tastatursteuerung 55Taste
Alt 55bedienen 133Bindung 150Enter 64Ereignis 134ESC 64F1 16Info über 133Return 64wiederholt gedrückt 134
Tastenkombination 149, 152Template 207, 237TemplateBinding 209Text
Änderung prüfen 79anhängen 75ComboBox 88Ein- und Ausgabe 71einfügen 75eingeben 77ganz markieren 79geschützter 80Länge begrenzen 80markierter Teil 79Position 76Spracherkennung 392SynthesisMediaType 384teilweise markieren 80TextBlock 73
TextAlignmentBlock 401
Textbereich 423TextBlock 73
in FixedDocument 426Inhalt 73mit Inlines 412Text 73TextWrapping 74
477
Index
TextBox 77AcceptsReturn 78MaxLength 80mehrzeilig 77mit Scrollbalken 78SelectAll() 79SelectedText 79SelectionLength 80SelectionStart 80TextChanged 77TextWrapping 78VerticalScrollBarVisibility 78
TextChange 79TextChanged
TextBox 77TextChangedEventArgs 79
Changes 79TextDecorations
Inline 415Text-Editor 80Text-Eingabe 80TextElement
FontFamily 401TextIndent
Paragraph 401TextMarkerStyle 405TextPointer 423TextRange 423Textur
für 3D-Grafik 313, 316TextureCoordinates
MeshGeometry3D 313TextWrapping
TextBlock 74TextBox 78
Thickness 60, 62, 104ThicknessAnimation 333ThicknessAnimationUsingKeyFrames 359Thin
FontWeights 56Thread
Sleep() 98ThreeDBorderWindow
WindowStyle 183Thumb 100, 103TickFrequency
Slider 101
TickPlacementBoth 101BottomRight 101Slider 100TopLeft 101
TicksSlider 102
Tile 267TileMode 269
TileModeImageBrush 267
TimeSeekOrigin 347TimeSpan 337
Parse() 339Title
NavigationWindow 181Window 169
ToAnimationTimeline 334
ToggleBoldEditingCommands 148, 422
ToggleButton 66Checked 67IsChecked 67IsThreeState 67Unchecked 67Zustand 67
ToggleUnderlineEditingCommands 422
ToLongDateString()DateTime 127
ToolBar 118ComboBoxStyleKey 120
ToolBarTray 118IsLocked 118Orientation 118
ToolTip 76ToolWindow
WindowStyle 183Top
Canvas 30TopLeft
AutoToolTipPlacement 102TickPlacement 101
TopMostWindow 171
478
Index
TopPropertyCanvas 32
ToShortDateString()DateTime 127
TotalManipulationManipulationCompletedEventArgs 145
TouchEreignis 141, 142
TouchDevice 141TouchDown 142, 143TouchEnter 142TouchEventArgs 141TouchLeave 142TouchMove 142, 143TouchPoint 142TouchPointCollection 142Touchscreen 141TouchUp 142, 143ToXml()
PromptBuilder 387, 389Track 100Trägheit
bei Manipulation 142Transform 270
GeometryModel3D 320Transform3D 319Transform3DGroup 326Transformation 270
3D-Grafik 319animieren 347mit Verschiebung 271ohne Verschiebung 271Ursprung 271
Transformationsgruppe2D-Grafik 2783D-Grafik 326
TransformGroup 278Children 279
TranslateTransform 277X 277Y 277
TranslateTransform3D 321Translation
ManipulationDelta 144Transparenz 183, 263, 280
animieren 343Effekt 281
gleitende 281Maske 281
TreeView 90alle übergeordneten Elemente 94alle untergeordneten Elemente 94ausgewählter Eintrag 92Auswahl gewechselt 92Eintrag 90Eintrag anhängen 95Eintrag einfügen 95SelectedItemChanged 92vorher ausgewählter Eintrag 92
TreeViewItem 90Beschriftung 92Collapsed 92Expanded 92ExpandSubtree() 96Header 92IsExpanded 92IsSelected 92ist aufgeklappt 92ist ausgewählt 92klappt auf 92klappt zu 92Selected 92Unselected 92Untereinträge aufklappen 96wurde abgewählt 92wurde ausgewählt 92
TrianglePenLineCap 248
TriangleIndicesMeshGeometry3D 293
Trigger 204, 351Bedingung 205, 206Control Template 209DataTemplate 239für Daten 238für Eigenschaft 204für Ereignis 350in Style 353Property 205Style 205Value 205Zielelement 209
TriggerCollection 351
479
Index
TwoFingerTapSystemGesture 141
TwoPageFlowDocumentReaderViewingMode 399
TwoWayMode 220
Typermitteln 26Umwandlung 19
Type Converter 19Typ-Style 197
mit Control Template 211vererben 199
U
UIElement 410Umgebungslicht 293, 302Umschalter 66, 68
einstellen 71Unchecked
CheckBox 67RadioButton 68ToggleButton 67
UnderlineInline-Typ 413
Undurchsichtigkeit 280Uniform
KeyTime 360Stretch 128
UniformToFillStretch 128
UnionGeometryCombineMode 253
UnloadedWindow 160
UnselectedListBoxItem 83TreeViewItem 92
Unterelement 19Unterstreichung 413
Art 415Unterstrich
Tastatursteuerung 55, 114Unterteilung 62, 114update
SQL 234
Update()OleDbAdapter 234
UpdateSource()BindingExpression 220
UpdateSourceTriggerBinding 220
UpDirectionOrthographicCamera 296, 301
UpperLatinTextMarkerStyle 405
UpperRomanTextMarkerStyle 405
Uri 166, 179UriKind 179
Relative 166
V
Validate()ValidationRule 224
ValidationResult 224ValidationRules 224
Add() 223Binding 222Validate() 224
ValueCondition 206DataTrigger 239ProgressBar 98Setter 195Slider 100Trigger 205
ValueChangedScrollBar 104Slider 100
Vector3D 292Vector3DAnimation 333Vector3DAnimationUsingKeyFrames 359VectorAnimation 333VectorAnimationUsingKeyFrames 359Vektorgrafik 14Verschiebung
2D-Grafik 2773D-Grafik 321Touchscreen 142Wert 277
480
Index
VerticalOrientation 36
VerticalAlignment 63VerticalAnchor 418VerticalContentAlignment 63VerticalOffset
ContextMenu 116VerticalScrollBarVisibility
ScrollViewer 36TextBox 78
Verzeichnis auswählenDialogfeld 434
Verzierung 286Video-Ausgabe 380Videodatei
in Geometrie 260VideoDrawing 260View
ListView 231Viewbox
ImageBrush 267ViewboxUnits
ImageBrush 269ViewingMode
FlowDocumentReader 399Viewport
ImageBrush 267Viewport2DVisual3D 311
Geometry 313IsVisualHostMaterial 313Visual 313
Viewport3D 292Children 293
ViewportUnitsImageBrush 269
Visibility 57, 108, 121, 122Visible
Visibility 57Visual
Viewport2DVisual3D 313Visual Basic 15, 17Visual C# 15, 17Visual Studio 15Volume
MediaPlayer 376PromptVolume 389SpeechSynthesizer 382
Vorlage 193WPF Ribbon Application 187WPF-Anwendung 16WPF-Browseranwendung 185
VorwärtsNavigation 177
W
WAV-Datei 166abspielen 166, 371, 375Dateiname 166laden 371
WaveAudioSynthesisMediaType 384
WebBrowser 130CanGoBack() 131CanGoForward() 131GoBack() 131GoForward() 131LoadCompleted 130Navigate() 130Navigated 130NavigateToString() 130Source 130
Weichzeichner 284WheelClick
MouseAction 150Width 36, 54
ColumnDefinition 47Image 128ListBox 82OrthographicCamera 293SizeToContent 172Tabellenzelle 408Window 169
WidthAndHeightSizeToContent 172
Window 20, 169AllowsTransparency 183Closed 160Closing 160DialogResult 175DragMove() 184Height 169Initialized 160, 214IsLoaded 70
481
Index
Loaded 122, 160LocationChanged 171Main() 157MouseMove 122Owner 174ResizeMode 170Resources 168Show() 174ShowDialog() 174ShowInTaskbar 170SizeChanged 122, 171SizeToContent 172StateChanged 171Title 169Topmost 171Unloaded 160Width 169Window_Closing() 234WindowStartupLocation 170WindowState 131WindowStyle 183
Window_Closing()Window 234
WindowsDruckdialog 426ModifierKeys 150Spracherkennung 390
Windows Formsin WPF-Anwendung 431mit WPF-Element 436Standard-Dialogfeld in WPF 432
Windows Presentation Foundation 13Windows Presentation Foundation-Host
184WindowsBase 436WindowsFormsHost 431WindowsFormsIntegration 431, 436Windows-Spracherkennung
integrierte 392WindowStartupLocation
CenterOwner 175Window 170
WindowStateWindow 131
WindowStyleWindow 183
WindowTitlePage 178
Wochentag 126WorkerReportsProgress
BackgroundWorker 99WPF 13
Eigenschaften 13Vorteile 13
WPF-AnwendungMinimal-Aufbau 155
WPF-Browseranwendung 184WPF-Interoperabilität
Toolbox-Kategorie 437Wrap
TextWrapping 74WrapPanel 37
einheitliche Größe 38FlowDirection 110Orientierung 38Richtung 38, 110
WrapWithOverflowTextWrapping 74
Würfelin 3D-Grafik 296
X
XPoint 246TranslateTransform 277
x:Class 20x:Key 195, 207x:Name 19x:Null 67x:Type 197, 238X1
Line 244X2
Line 244XAML 15
Attribut 19Editor 17Erweiterung 24mit Programmiercode 17Paketdatenformat 423
XAML Browser Application 184
482
Index
XamlPackageDataFormats 423
XamlReader 214Load() 214
XBAP 184XML
Knoten 21XML-Datei
mit SSML 387, 389xmlns 20xmlns:x 20Xor
GeometryCombineMode 253
Y
YPoint 246TranslateTransform 277
Y1Line 244
Y2Line 244
Z
z-Achse 289Zahlenbereich
darstellen 97Wert darstellen 100
Zahlenwertedarstellen 97
Zeichenketteanimieren 363
Zeilenumbruch 65, 74, 413steuern 74, 78
Zeitspanne 339Zeitverzögerung 98Zentimeter 401ZIndex
Panel 30, 272ZIndexProperty
Canvas 32Zoom
FlowDocumentReader 400ZoomIncrement 400Zweidimensionale Grafik 241Zwischenablage 77
483