Windows Presentation Foundation 4.5 - Das umfassende Handbuch zur WPF

Windows Presentation Foundation 4.5 - Das umfassende Handbuch zur WPF

von: Thomas Claudius Huber

Galileo Press, 2012

ISBN: 9783836219563

Sprache: Deutsch

1245 Seiten, Download: 19910 KB

 
Format:  PDF, auch als Online-Lesen

geeignet für: Apple iPad, Android Tablet PC's Online-Lesen PC, MAC, Laptop


 

eBook anfordern

Mehr zum Inhalt

Windows Presentation Foundation 4.5 - Das umfassende Handbuch zur WPF



  Inhalt 6  
  Vorwort 24  
  Hinweise zum Buch 28  
  Kapitel 1 42  
     Einführung in die WPF 42  
        1.1 Die WPF und das .NET Framework 42  
           1.1.1 Die WPF im .NET Framework 3.0 43  
           1.1.2 Die WPF und das .NET Framework 3.5 43  
           1.1.3 Die WPF und das .NET Framework 4.0 44  
           1.1.4 Die WPF und das .NET Framework 4.5 45  
           1.1.5 Die WPF als zukünftiges Programmiermodell 47  
           1.1.6 Stärken und Eigenschaften der WPF 49  
           1.1.7 Auf Wiedersehen, GDI+ 52  
        1.2 Von Windows 1.0 zur Windows Presentation Foundation 52  
           1.2.1 Die ersten Wrapper um die Windows-API 52  
           1.2.2 Windows Forms und GDI+ 53  
           1.2.3 Die Windows Presentation Foundation 54  
           1.2.4 Die WPF und Windows 8 56  
        1.3 Die Architektur der WPF 57  
           1.3.1 MilCore - die »Display Engine« 59  
           1.3.2 WindowsBase 60  
           1.3.3 PresentationCore 61  
           1.3.4 PresentationFramework 61  
           1.3.5 Vorteile und Stärken der WPF-Architektur 61  
        1.4 Konzepte 63  
           1.4.1 XAML 63  
           1.4.2 Dependency Properties 66  
           1.4.3 Routed Events 69  
           1.4.4 Commands 72  
           1.4.5 Styles und Templates 75  
           1.4.6 3D 76  
        1.5 Zusammenfassung 78  
  Kapitel 2 80  
     Das Programmiermodell 80  
        2.1 Grundlagen der WPF 81  
           2.1.1 Namespaces 81  
           2.1.2 Assemblies 82  
           2.1.3 Die Klassenhierarchie 82  
        2.2 Projektvorlagen in Visual Studio 2012 89  
           2.2.1 WPF-Anwendung (Windows) 90  
           2.2.2 WPF-Browseranwendung (Web) 91  
           2.2.3 WPF-Benutzersteuerelementbibliothek 92  
           2.2.4 Benutzerdefinierte WPF-Steuerelementbibliothek 93  
        2.3 Windows-Projekte mit Visual Studio 2012 94  
           2.3.1 Ein Windows-Projekt mit XAML und C# 95  
           2.3.2 Eine reine Codeanwendung (C#) 108  
           2.3.3 Eine reine, kompilierte XAML-Anwendung 110  
           2.3.4 Best Practice 113  
        2.4 Application, Dispatcher und Window 113  
           2.4.1 Die Klasse »Application« 114  
           2.4.2 Die Klasse »Dispatcher« 121  
           2.4.3 Fenster mit der Klasse »Window« 127  
        2.5 Zusammenfassung 142  
  Kapitel 3 146  
     XAML 146  
        3.1 XAML? 146  
        3.2 Elemente und Attribute 148  
        3.3 Namespaces 150  
           3.3.1 Der XML-Namespace der WPF 151  
           3.3.2 Der XML-Namespace für XAML 153  
           3.3.3 Über den Namespace-Alias 154  
           3.3.4 XAML mit eigenen CLR-Namespaces erweitern 155  
        3.4 Properties in XAML setzen 159  
           3.4.1 Die Attribut-Syntax 159  
           3.4.2 Die Property-Element-Syntax 160  
           3.4.3 Die Content-Property (Default-Property) 162  
           3.4.4 Die Attached-Property-Syntax 163  
        3.5 Type-Converter 164  
           3.5.1 Vordefinierte Type-Converter 165  
           3.5.2 Eigene Type-Converter implementieren 166  
           3.5.3 Type-Converter in C# verwenden 170  
        3.6 Markup-Extensions 172  
           3.6.1 Verwenden von Markup-Extensions in XAML und C# 172  
           3.6.2 XAML-Markup-Extensions 175  
           3.6.3 Markup-Extensions der WPF 176  
        3.7 XAML-Spracherweiterungen 177  
        3.8 Collections in XAML 184  
           3.8.1 Collections, die IList implementieren 184  
           3.8.2 Collections, die IDictionary implementieren 185  
        3.9 XamlReader und XamlWriter 188  
           3.9.1 XAML mit XamlReader dynamisch laden 188  
           3.9.2 Objekte mit XamlWriter in XAML serialisieren 191  
        3.10 Zusammenfassung 192  
  Kapitel 4 194  
     Der Logical und der Visual Tree 194  
        4.1 Zur Veranschaulichung verwendete Komponenten 197  
           4.1.1 Der InfoDialog von FriendStorage 197  
           4.1.2 Die Anwendung »XAMLPadExtensionClone« 198  
        4.2 Der Logical Tree 199  
           4.2.1 Der Logical Tree des InfoDialogs 200  
           4.2.2 Für den Logical Tree verantwortliche Klassen 204  
           4.2.3 Die Klasse LogicalTreeHelper 207  
           4.2.4 NameScopes, FindName und FindLogicalNode 212  
        4.3 Der Visual Tree 220  
           4.3.1 Der Visual Tree des InfoDialogs 220  
           4.3.2 Eigene Klassen im Visual Tree 223  
           4.3.3 Die Klasse »VisualTreeHelper« 227  
           4.3.4 Der Visual Tree und das Rendering 229  
        4.4 Zusammenfassung 234  
  Kapitel 5 238  
     Controls 238  
        5.1 Die Klasse »Control« 241  
        5.2 ContentControls 243  
           5.2.1 Buttons 246  
           5.2.2 Labels 253  
           5.2.3 ToolTips anzeigen 255  
           5.2.4 Scrollen mit ScrollViewer 258  
           5.2.5 WPF- und HTML-Inhalte mit Frame darstellen 260  
           5.2.6 ContentControls mit Header 262  
        5.3 ItemsControls 266  
           5.3.1 ItemsControls mit Header 269  
           5.3.2 Baumansicht mit der TreeView 272  
           5.3.3 Navigation über Menüs 277  
           5.3.4 Elemente mit einem Selector auswählen 281  
           5.3.5 Das Ribbon 289  
           5.3.6 Eine StatusBar mit Informationen 293  
           5.3.7 »Alternating Rows« mit AlternationCount 293  
        5.4 Controls zur Textdarstellung und -bearbeitung 295  
           5.4.1 »TextBox« zum Editieren von Text 295  
           5.4.2 RichTextBox für formatierten Text 297  
           5.4.3 PasswordBox für maskierten Text 297  
           5.4.4 TextBlock zur Anzeige von Text 298  
           5.4.5 Zeichnen mit dem InkCanvas 298  
        5.5 Datum-Controls 301  
           5.5.1 Calendar 301  
           5.5.2 DatePicker 304  
        5.6 Range-Controls 305  
           5.6.1 Bereich mit Slider auswählen 306  
           5.6.2 ProgressBar zur Statusanzeige 307  
           5.6.3 Scrollen mit der ScrollBar 308  
        5.7 Sonstige, einfachere Controls 308  
           5.7.1 Decorator zum Ausschmücken 308  
           5.7.2 Bilder mit der Image-Klasse darstellen 310  
           5.7.3 Einfaches Popup anzeigen 311  
        5.8 Zusammenfassung 314  
  Kapitel 6 316  
     Layout 316  
        6.1 Der Layoutprozess 316  
           6.1.1 Die zwei Schritte des Layoutprozesses 317  
           6.1.2 »MeasureOverride« und »ArrangeOverride« 319  
           6.1.3 Ein eigenes Layout-Panel (DiagonalPanel) 320  
           6.1.4 Zusammenfassung des Layoutprozesses 324  
        6.2 Layoutfunktionalität von Elementen 326  
           6.2.1 Width und Height 326  
           6.2.2 Margin und Padding 327  
           6.2.3 Alignments 329  
           6.2.4 Die Visibility-Property 331  
           6.2.5 Die UseLayoutRounding-Property 332  
           6.2.6 Transformationen 334  
        6.3 Panels 345  
           6.3.1 Die Klasse »Panel« 345  
           6.3.2 Canvas 347  
           6.3.3 StackPanel 350  
           6.3.4 WrapPanel 351  
           6.3.5 DockPanel 352  
           6.3.6 Grid 354  
           6.3.7 Primitive Panels 367  
           6.3.8 Übersicht der Alignments in den verschiedenen Panels 371  
           6.3.9 Wenn der Platz im Panel nicht ausreicht 373  
        6.4 Das Layout von FriendStorage 375  
           6.4.1 Das Hauptfenster aus Benutzersicht 375  
           6.4.2 Das Hauptfenster aus Entwicklersicht 377  
           6.4.3 Animation des Freunde-Explorers 385  
        6.5 Zusammenfassung 390  
  Kapitel 7 392  
     Dependency Properties 392  
        7.1 Die Keyplayer 393  
           7.1.1 »DependencyObject« und »DependencyProperty« 393  
           7.1.2 Was ist die Property Engine? 395  
        7.2 Dependency Properties 395  
           7.2.1 Eine Dependency Property implementieren 397  
           7.2.2 Metadaten einer Dependency Property 399  
           7.2.3 Validieren einer Dependency Property 406  
           7.2.4 Die FontSize-Property als Ziel eines Data Bindings 408  
           7.2.5 Existierende Dependency Properties verwenden 410  
           7.2.6 Read-only-Dependency-Properties implementieren 413  
           7.2.7 Ermittlung des Wertes einer Dependency Property 415  
           7.2.8 Lokal gesetzte Werte löschen 417  
           7.2.9 Überblick über die Quellen mit »DependencyPropertyHelper« 418  
           7.2.10 Auf Änderungen in existierenden Klassen lauschen 418  
        7.3 Attached Properties 419  
           7.3.1 Eine Attached Property implementieren 420  
           7.3.2 Ein einfaches Panel mit Attached Properties 423  
           7.3.3 Bekannte Vertreter 427  
        7.4 Zusammenfassung 429  
  Kapitel 8 432  
     Routed Events 432  
        8.1 Die Keyplayer 433  
           8.1.1 Die Klassen »RoutedEvent« und »EventManager« 433  
           8.1.2 Die Routing-Strategie 434  
           8.1.3 Das Interface »IInputElement« 436  
           8.1.4 Die Klasse »RoutedEventArgs« 438  
           8.1.5 Das Event System 439  
        8.2 Eigene Routed Events 440  
           8.2.1 Ein Routed Event implementieren 440  
           8.2.2 Das Routed Event als Attached Event verwenden 444  
           8.2.3 Existierende Routed Events in eigenen Klassen nutzen 446  
           8.2.4 Instanz- und Klassenbehandlung 448  
        8.3 Die »RoutedEventArgs« im Detail 453  
           8.3.1 Sender vs. Source und OriginalSource 453  
           8.3.2 Die Handled-Property 455  
        8.4 Routed Events der WPF 457  
           8.4.1 Tastatur-Events 459  
           8.4.2 Maus-Events 462  
           8.4.3 Stylus-Events (Stift) 466  
           8.4.4 Multitouch-Events 467  
           8.4.5 Die statischen Mitglieder eines FrameworkElements 470  
        8.5 Zusammenfassung 471  
  Kapitel 9 474  
     Commands 474  
        9.1 Die Keyplayer 475  
           9.1.1 Das Interface »ICommand« 475  
           9.1.2 Das Interface »ICommandSource« 476  
        9.2 Eigene Commands mit »ICommand« 477  
           9.2.1 Ein Command implementieren 477  
           9.2.2 Das Command verwenden 478  
           9.2.3 Das Command von der Logik entkoppeln 479  
        9.3 Die »wahren« Keyplayer 482  
           9.3.1 Die Klassen »RoutedCommand« und »RoutedUICommand« 482  
           9.3.2 Der »CommandManager« 484  
           9.3.3 Die Klasse »CommandBinding« 485  
           9.3.4 Elemente mit einer CommandBindings-Property 486  
           9.3.5 Das Zusammenspiel der Keyplayer 487  
        9.4 Eigene Commands mit der Klasse »RoutedUICommand« 490  
           9.4.1 Die eigenen Commands in FriendStorage 491  
           9.4.2 Commands mit »InputGestures« versehen 492  
           9.4.3 CommandBindings zum Window-Objekt hinzufügen 494  
           9.4.4 Die Commands im Menü und in der ToolBar verwenden 495  
        9.5 Built-in-Commands der WPF 500  
           9.5.1 Built-in-Commands in FriendStorage 501  
           9.5.2 Bestehende Commands mit InputBindings auslösen 503  
           9.5.3 Controls mit integrierten CommandBindings 506  
        9.6 Das Model-View-ViewModel-Pattern (MVVM) 508  
           9.6.1 Die Idee des Model-View-Controller-Patterns (MVC) 509  
           9.6.2 Die Idee des Model-View-ViewModel-Patterns (MVVM) 510  
           9.6.3 Ein MVVM-Beispiel 512  
        9.7 Zusammenfassung 517  
  Kapitel 10 522  
     Ressourcen 522  
        10.1 Logische Ressourcen 522  
           10.1.1 Logische Ressourcen definieren und verwenden 523  
           10.1.2 Die Suche nach Ressourcen im Detail 526  
           10.1.3 Elemente als Ressourcen verwenden 530  
           10.1.4 Statische Ressourcen 533  
           10.1.5 Dynamische Ressourcen 535  
           10.1.6 Ressourcen in separate Dateien auslagern 539  
           10.1.7 Logische Ressourcen in FriendStorage 542  
        10.2 Binäre Ressourcen 544  
           10.2.1 Binäre Ressourcen im .NET Framework 545  
           10.2.2 Binäre Ressourcen bei der WPF 548  
           10.2.3 Die Pack-URI-Syntax 551  
           10.2.4 Auf Dateien im Anwendungsverzeichnis zugreifen 552  
           10.2.5 In C# auf binäre Ressourcen zugreifen 553  
           10.2.6 Lokalisierung von WPF-Anwendungen 556  
           10.2.7 Eine binäre Ressource als Splashscreen 566  
        10.3 Zusammenfassung 569  
  Kapitel 11 570  
     Styles, Trigger und Templates 570  
        11.1 Styles 570  
           11.1.1 Grundlagen und Keyplayer 571  
           11.1.2 Styles als logische Ressourcen definieren 574  
           11.1.3 Einen Style für verschiedene Typen verwenden 577  
           11.1.4 Bestehende Styles erweitern 580  
           11.1.5 Setter und EventSetter 582  
           11.1.6 Styles und Trigger 585  
        11.2 Trigger 585  
           11.2.1 Property-Trigger 586  
           11.2.2 DataTrigger 591  
           11.2.3 EventTrigger 592  
           11.2.4 Komplexe Bedingungen mit Triggern 597  
        11.3 Templates 599  
           11.3.1 Arten von Templates 600  
           11.3.2 Layout mit dem ItemsPanelTemplate 601  
           11.3.3 Daten mit DataTemplates visualisieren 602  
           11.3.4 Das Aussehen von Controls mit ControlTemplates anpassen 606  
           11.3.5 Das Default-ControlTemplate eines Controls 609  
           11.3.6 Die Verbindung zwischen Control und Template 613  
           11.3.7 Two-Way-Contract zwischen Control und Template 616  
           11.3.8 VisualStateManager statt Trigger verwenden 621  
           11.3.9 Templates in C# 631  
        11.4 Styles, Trigger & Templates in FriendStorage 633  
           11.4.1 Der Next-Button 633  
           11.4.2 Die Image-Objekte der Toolbar-Buttons 635  
           11.4.3 Die DataGridRows des Freunde-Explorers 637  
        11.5 Zusammenfassung 639  
  Kapitel 12 642  
     Daten 642  
        12.1 Data Binding 643  
           12.1.1 Data Binding in XAML 643  
           12.1.2 Data Binding in C# 643  
           12.1.3 Die Binding-Klasse im Detail 645  
           12.1.4 Der DataContext 648  
           12.1.5 Die Path-Property im Detail 650  
           12.1.6 Die Richtung des Bindings 652  
           12.1.7 Der UpdateSourceTrigger 654  
           12.1.8 Die Delay-Property des Bindings 655  
           12.1.9 Die BindingExpression 656  
           12.1.10 Bindings entfernen 658  
           12.1.11 Debugging von Data Bindings 658  
        12.2 Datenquellen eines Data Bindings 660  
           12.2.1 Binding an die Dependency Properties eines Elements 661  
           12.2.2 Binding an einfache .NET-Properties 661  
           12.2.3 Binding an statische Properties 665  
           12.2.4 Binding an logische Ressourcen 667  
           12.2.5 Binding an Quellen unterschiedlichen Typs 668  
           12.2.6 Binding an relative Quellen mit »RelativeSource« 671  
           12.2.7 Binding der Target-Property an mehrere Quellen 674  
           12.2.8 DataSourceProvider für Objekte und XML 678  
           12.2.9 Binding an XLinq 685  
        12.3 Data Binding an Collections 686  
           12.3.1 Der Fallback-Mechanismus 686  
           12.3.2 Die CollectionViews der WPF 689  
           12.3.3 Die DefaultView 693  
           12.3.4 Daten filtern, sortieren und gruppieren 695  
           12.3.5 »Live Shaping« von Daten 701  
           12.3.6 Hinzufügen und Löschen von Daten 702  
           12.3.7 Collections auf Worker-Threads bearbeiten 704  
           12.3.8 Mehrere Collections als Datenquelle verwenden 705  
           12.3.9 Binding an ein ADO.NET-DataSet 706  
        12.4 Benutzereingaben validieren 709  
           12.4.1 Validieren mit »ExceptionValidationRule« 711  
           12.4.2 Validieren mit »DataErrorValidationRule« 713  
           12.4.3 Validieren mit »NotifyDataErrorValidationRule« 714  
           12.4.4 Validieren mit eigener ValidationRule 717  
           12.4.5 Die Validation-Klasse 719  
           12.4.6 Validieren mehrerer Bindings mit »BindingGroup« 721  
        12.5 Das DataGrid 730  
           12.5.1 Die verwendeten Testdaten 731  
           12.5.2 Autogenerieren von Columns 732  
           12.5.3 Unterschiedliche Column-Typen 735  
           12.5.4 Columns manuell zum DataGrid hinzufügen 737  
           12.5.5 Die Breite einer Column 739  
           12.5.6 Columns mit der Klasse »DataGridTemplateColumn« 741  
           12.5.7 RowDetails anzeigen 743  
           12.5.8 Daten gruppieren 744  
           12.5.9 Die Auswahlmöglichkeiten festlegen 746  
           12.5.10 Auf ausgewählte Daten zugreifen 747  
           12.5.11 Bearbeiten von Daten 748  
           12.5.12 Daten im DataGrid validieren 749  
           12.5.13 Sonstige Eigenschaften des DataGrids 753  
        12.6 Daten mit DataTemplates visualisieren 754  
           12.6.1 Auswahl mit der Klasse »DataTemplateSelector« 754  
           12.6.2 Hierarchische DataTemplates 756  
        12.7 Drag & Drop 759  
        12.8 Daten in FriendStorage 763  
           12.8.1 Die Entitäten »Friend«, »Address« und »FriendCollection« 763  
           12.8.2 Daten im MainWindow 764  
           12.8.3 Daten im NewFriendDialog 773  
           12.8.4 Speichern in gezippter .friends-Datei 776  
        12.9 Zusammenfassung 777  
  Kapitel 13 782  
     2D-Grafik 782  
        13.1 Shapes 783  
           13.1.1 Das Rectangle 784  
           13.1.2 Die Ellipse 785  
           13.1.3 Linien mit »Line« und »Polyline« 785  
           13.1.4 Spezielle Formen mit »Polygon« 787  
           13.1.5 Ein Außerirdischer aus Shapes 790  
           13.1.6 Die StrokeXXX-Properties der Shape-Klasse 791  
           13.1.7 Komplexe Shapes mit »Path« 795  
        13.2 Geometries 795  
           13.2.1 »RectangleGeometry« und »EllipseGeometry« 796  
           13.2.2 »LineGeometry« 798  
           13.2.3 Mehrere Geometry-Objekte gruppieren 798  
           13.2.4 Geometries kombinieren 799  
           13.2.5 Komplexe Formen mit »PathGeometry« 800  
           13.2.6 Die Klasse »StreamGeometry« 803  
           13.2.7 Die Path-Markup-Syntax 804  
           13.2.8 Clipping mit Geometry-Objekten 806  
        13.3 Drawings 807  
           13.3.1 »GeometryDrawing« und »DrawingGroup« 807  
           13.3.2 »ImageDrawing« und »VideoDrawing« 809  
           13.3.3 Ein Außerirdischer aus Geometries und Drawings 810  
        13.4 Programmierung des Visual Layers 813  
           13.4.1 Die Klasse »DrawingContext« 813  
           13.4.2 DrawingVisual einsetzen 815  
           13.4.3 Visual-Hit-Testing 817  
        13.5 Brushes 818  
           13.5.1 Der »SolidColorBrush« und die Color-Struktur 819  
           13.5.2 Farbverläufe mit GradientBrushes 821  
           13.5.3 TileBrushes 825  
        13.6 Cached Compositions 831  
           13.6.1 BitmapCache für ein Element aktivieren 831  
           13.6.2 Nebeneffekte des Cachings 832  
           13.6.3 Elemente mit »BitmapCacheBrush« zeichnen 835  
        13.7 Effekte 837  
           13.7.1 Die Effect-Klassen 838  
           13.7.2 »Blur« und »DropShadow« verwenden 838  
           13.7.3 Properties von »BlurEffect« und »DropShadowEffect« 840  
           13.7.4 Effekte mit eigenen Pixelshadern 840  
           13.7.5 Pixelshader mit weiteren Konstanten 849  
        13.8 Bitmaps 852  
           13.8.1 BitmapSources - Bildquellen 852  
           13.8.2 Bitmap-Operationen 854  
           13.8.3 Bitmap-Operationen in FriendStorage 854  
        13.9 Zusammenfassung 855  
  Kapitel 14 858  
     3D-Grafik 858  
        14.1 3D im Überblick 859  
           14.1.1 Inhalte einer 3D-Szene 859  
           14.1.2 2D und 3D im Vergleich 860  
        14.2 Die Objekte einer 3D-Szene im Detail 862  
           14.2.1 Das 3D-Koordinatensystem 862  
           14.2.2 Der Viewport3D als Fernseher 863  
           14.2.3 Die richtige Kamera 864  
           14.2.4 Visual3D-Objekte 868  
           14.2.5 Model3D-Objekte 870  
           14.2.6 »GeometryModel3D« aufbauen 871  
           14.2.7 Licht ins Dunkel bringen 877  
           14.2.8 Transformationen 880  
           14.2.9 Verschiedene Materialien 882  
           14.2.10 Texturen 884  
           14.2.11 Normalen 887  
        14.3 Benutzerinteraktion mit 3D-Objekten 891  
           14.3.1 Interaktivität in WPF 3.0 mit Visual-Hit-Testing 891  
           14.3.2 Interaktivität in WPF 3.5 mit »UIElement3D« 892  
           14.3.3 Interaktive 2D-Elemente auf 3D-Objekten in WPF 3.5 895  
        14.4 Komplexe 3D-Objekte 896  
           14.4.1 Landschaft im Code generieren 897  
           14.4.2 Kugel erstellen 898  
           14.4.3 Komplexe 3D-Objekte mit Third-Party-Tools erstellen 900  
        14.5 Zusammenfassung 901  
  Kapitel 15 904  
     Animationen 904  
        15.1 Animationsgrundlagen 905  
           15.1.1 Voraussetzungen für Animationen 905  
           15.1.2 Übersicht über die Animationsarten und -klassen 906  
           15.1.3 Timelines und Clocks 909  
           15.1.4 Das Interface »IAnimatable« 911  
        15.2 Basis-Animationen in C# 913  
           15.2.1 Start- und Zielwert mit »From«, »To« und »By« 913  
           15.2.2 Dauer, Startzeit und Geschwindigkeit 917  
           15.2.3 Rückwärts und Wiederholen 919  
           15.2.4 Die Gesamtlänge einer Timeline 920  
           15.2.5 Wiederholen mit neuen Werten 921  
           15.2.6 Beschleunigen und Abbremsen 922  
           15.2.7 Das Füllverhalten einer Animation 924  
           15.2.8 Eine Animation mit »AnimationClock« steuern 925  
           15.2.9 Animationen in FriendStorage 929  
        15.3 Basis-Animationen in XAML 931  
           15.3.1 Eine einfache Animation in XAML 933  
           15.3.2 Das Storyboard als Timeline-Container 937  
           15.3.3 Animationen mit »ControllableStoryboard« steuern 939  
        15.4 Keyframe-Animationen 941  
           15.4.1 Lineare Keyframe-Animationen 943  
           15.4.2 SplineKeyframe-Animationen 945  
           15.4.3 Animationen mit diskreten Keyframes 946  
        15.5 Pfad-Animationen 950  
        15.6 Easing Functions 952  
           15.6.1 Grundlagen der Easing Functions 952  
           15.6.2 Easing Functions in Basis-Animationen 956  
           15.6.3 Easing Functions in Keyframe-Animationen 958  
           15.6.4 Eigene Easing Functions erstellen 960  
        15.7 Low-Level-Animationen 962  
        15.8 Zusammenfassung 965  
  Kapitel 16 968  
     Audio und Video 968  
        16.1 Audio (.wav) mit »SoundPlayerAction« und »SoundPlayer« 968  
           16.1.1 Audio mit »SoundPlayerAction« (XAML) 969  
           16.1.2 Audio mit »SoundPlayer« (C#) 970  
        16.2 Audio und Video mit »MediaPlayer« (C#) 972  
           16.2.1 Einfaches Abspielen 972  
           16.2.2 Steuerung mit »MediaClock« und »MediaTimeline« 975  
        16.3 Audio und Video mit »MediaElement« (XAML) 978  
           16.3.1 Einfaches Abspielen 979  
           16.3.2 Steuerung mit Methoden (unabhängiger Modus) 980  
           16.3.3 Steuerung mit »MediaTimeline« (Clock-Modus) 981  
           16.3.4 Storyboard mit »MediaTimeline« und »AnimationTimeline« 983  
           16.3.5 Snapshots von Videos 985  
        16.4 Zusammenfassung 988  
  Kapitel 17 990  
     Eigene Controls 990  
        17.1 Custom Controls 991  
           17.1.1 Die Struktur eines Custom Controls 992  
           17.1.2 Der zu erstellende VideoPlayer 995  
           17.1.3 Klassenname anpassen 995  
           17.1.4 Template-Parts definieren 997  
           17.1.5 Dependency Properties erstellen 1000  
           17.1.6 Routed Events implementieren 1003  
           17.1.7 Commands unterstützen 1004  
           17.1.8 Das Aussehen des lookless Controls festlegen 1008  
           17.1.9 Das Control testen 1012  
           17.1.10 Optional weitere Theme-Styles anlegen 1014  
           17.1.11 Templates auf Windows-Ebene definieren 1017  
        17.2 Custom Control mit Visual States 1021  
           17.2.1 Visual States im Code implementieren 1021  
           17.2.2 States für andere sichtbar machen 1024  
           17.2.3 States im Default-ControlTemplate unterstützen 1025  
           17.2.4 Den VideoPlayer mit Visual States testen 1026  
        17.3 User Control 1027  
           17.3.1 Die Struktur eines User Controls 1028  
           17.3.2 Das zu erstellende PrintableFriend-Control 1029  
           17.3.3 UI des Controls definieren 1030  
           17.3.4 Properties in der Codebehind-Datei erstellen 1031  
           17.3.5 Die Content-Property festlegen 1033  
        17.4 Alternativen zu Custom Control und User Control 1034  
           17.4.1 Wann sollte man die OnRender-Methode überschreiben? 1034  
           17.4.2 Adorner erstellen und Elemente damit ausschmücken 1035  
        17.5 Zusammenfassung 1040  
  Kapitel 18 1042  
     Text und Dokumente 1042  
        18.1 Text 1043  
           18.1.1 »FrameworkContentElement« als Basis für Text 1043  
           18.1.2 Formatierung mit Spans 1045  
           18.1.3 Formatierung mit den Properties aus »TextElement« 1047  
           18.1.4 Elemente im Text mit »InlineUIContainer« 1049  
           18.1.5 Fonts und Typefaces 1050  
           18.1.6 Typografie 1051  
           18.1.7 Die FormattedText-Klasse 1052  
           18.1.8 Texteffekte 1054  
           18.1.9 Nützliche Eigenschaften der TextBlock-Klasse 1055  
        18.2 Das Text-Rendering beeinflussen 1057  
           18.2.1 Kleine Zeichen sind schlecht lesbar 1058  
           18.2.2 Die Schrift führt beim Animieren zu Performance-Problemen 1059  
           18.2.3 Der Algorithmus für das Anti-Aliasing lässt sich nicht festlegen 1059  
           18.2.4 Der ClearType-Algorithmus greift nicht immer 1060  
        18.3 Flow-Dokumente 1062  
           18.3.1 Die Klasse »FlowDocument« 1062  
           18.3.2 Die fünf Block-Arten 1064  
           18.3.3 Die AnchoredBlocks »Figure« und »Floater« 1068  
           18.3.4 Controls zum Betrachten 1071  
        18.4 Annotationen 1073  
        18.5 XPS-Dokumente (Fixed-Dokumente) 1077  
           18.5.1 FlowDocument als XPS speichern 1078  
           18.5.2 Ein XPS-Dokument laden und anzeigen 1082  
           18.5.3 Die Inhalte eines XPS-Dokuments 1083  
           18.5.4 XPS in C# mit FixedDocument & Co. erstellen 1087  
        18.6 Drucken 1088  
           18.6.1 Einfaches Ausdrucken 1089  
           18.6.2 Drucken mit »PrintQueue« 1091  
           18.6.3 Festlegen von Druckeigenschaften mit »PrintTicket« 1091  
           18.6.4 Drucken mit »PrintDialog« 1092  
        18.7 Dokumente in FriendStorage 1093  
           18.7.1 Hilfe mit Flow-Dokument 1093  
           18.7.2 Export der Freundesliste als XPS 1095  
           18.7.3 Drucken der Freundesliste 1099  
        18.8 Zusammenfassung 1099  
  Kapitel 19 1104  
     Windows, Navigation und XBAP 1104  
        19.1 Windows-Anwendungen 1105  
           19.1.1 Built-in-Dialoge 1105  
           19.1.2 Anwendungen mit UI Automation automatisieren 1107  
           19.1.3 Deployment 1122  
        19.2 Windows-Anwendungen und die Windows Taskbar 1123  
           19.2.1 Übersicht der Möglichkeiten 1124  
           19.2.2 Thumb-Buttons im Vorschaufenster 1125  
           19.2.3 Ein Overlay-Bild auf dem Taskbar-Button 1128  
           19.2.4 Eine Fortschrittsanzeige auf dem Taskbar-Button 1130  
           19.2.5 Den Ausschnitt im Thumbnail festlegen 1131  
           19.2.6 Eine JumpList mit JumpTasks 1133  
           19.2.7 JumpList mit JumpTasks und JumpPaths 1134  
           19.2.8 JumpList mit letzten und häufigen Elementen 1136  
        19.3 Navigationsanwendungen 1137  
           19.3.1 Container für eine Page 1138  
           19.3.2 Navigation zu einer Seite/Page 1142  
           19.3.3 Navigation-Events 1148  
           19.3.4 Daten übergeben 1150  
           19.3.5 Daten mittels PageFunction zurückgeben 1154  
        19.4 XBAP-Anwendungen 1157  
           19.4.1 FriendViewer als XBAP erstellen 1158  
           19.4.2 Generierte Dateien 1160  
           19.4.3 XBAP vs. Loose XAML 1161  
           19.4.4 XBAP vs. Silverlight 1161  
        19.5 Zusammenfassung 1162  
  Kapitel 20 1164  
     Interoperabilität 1164  
        20.1 Unterstützte Szenarien und Grenzen 1164  
           20.1.1 Mögliche Interoperabilitätsszenarien 1165  
           20.1.2 Grenzen und Einschränkungen 1166  
        20.2 Windows Forms 1167  
           20.2.1 Windows Forms in WPF 1167  
           20.2.2 WPF in Windows Forms 1175  
           20.2.3 Dialoge 1177  
        20.3 ActiveX in WPF 1179  
        20.4 Win32 1182  
           20.4.1 Win32 in WPF 1182  
           20.4.2 WPF in Win32 1192  
           20.4.3 Dialoge 1196  
           20.4.4 Win32-Nachrichten in WPF abfangen 1201  
        20.5 Direct3D in WPF 1203  
           20.5.1 Voraussetzungen und Konfiguration 1204  
           20.5.2 Die Direct3D-Oberfläche integrieren 1205  
        20.6 Zusammenfassung 1208  
  Index 1210  

Kategorien

Service

Info/Kontakt