Windows 7 und Windows 8 ausgeliefert. Auch bei Windows XP ab Service Pack 2 kann es nachinstalliert werden.
Es ist eine Alternative zu den herkömmlichen "Windows Forms" und bietet den Vorteil, dass die Präsentationsschicht und die Logik dahinter von Anfang an getrennt werden, da das Design in einer xaml-Datei gespeichert wird, in welcher gar kein C# Code verwendet werden kann.
Somit wird immer automatisch eine zur xaml-Datei gehörende .xaml.cs Datei erstellt, in welche die Logik hinter der Präsentation programmiert werden kann.
XAML
WPF verwendet die sogenannte "Auszeichnungssprache" XAML, welche auf XML basiert und eigens von Microsoft für die Oberflächengestaltung von Anwendungen entwickelt wurde.Auf ihr basieren abgesehen von WPF auch die Windows Runtime (für die neuen Windows 8-Apps), sowie Silverlight, welches eine Erweiterung für Webbrowser ist und die Ausführung von Rich Internet Applications ermöglicht.
XAML selbst ist jedoch unabhängig von allen 3 Technologien.
Je nach dem welche Technologie wir verwenden, wird XAML auch unterschiedliche Elemente aus den verschiedenen Namespaces verwenden.
WPF mit Visual Studio
Um eine WPF-Applikation zu erstellen, wählt man beim Projekt-Typ anstelle von "Windows Forms-Anwendung" einfach "WPF-Anwendung" aus.Sobald das Projekt erstellt wurde, fallen auch schon die ersten Unterschiede zu einer normalen "Windows Forms-Anwendung" auf.
Anstelle der "Program.cs"-Klasse, welche jede Windows Forms-Applikation hat und die Main-Methode bereitstellt, welche immer als erstes ausgeführt wird und die 1. Form (die vorhandene Form1) öffnet, befindet sich nun eine App.xaml Datei sowie eine dazugehörige App.xaml.cs Datei.
Ebenfalls ist keine normale Form vorhanden, sondern eine MainWindow.xaml, welche im WPF-Projekt eine "Form" darstellt, sowie die dazugehörige MainWindow.xaml.cs Datei.
In der App.xaml-Datei befindet sich folgender Code:
App.xaml |
Die MainWindow.xaml-Datei enthält folgenden Code:
MainWindow.xaml |
Die Ansicht eines WPF-Fensters im Visual-Studio ist folgendermassen aufgebaut:
Das Designen an sich ist sehr ähnlich wie in den herkömmlichen Windows Forms-Applikationen. Den Vorteil sehe ich jedoch darin, dass man direkt auch den Design-Code sieht und sehr einfach anpassen kann. Da es ähnlich aufgebaut ist wie die CSS-Eigenschaften, welche man direkt in den HTML-Code schreiben kann, hatte ich keine Probleme, den Aufbau zu verstehen.
Ein grosser Unterschied ist, dass die Ereignisse nun immer in der dazugehörigen .xaml.cs Datei verarbeitet werden und somit von der Präsentationsschicht getrennt sind.