Inhalt
Kurz gesagt: WPF ist das Oberflächen-Framework von .NET für Windows-Desktopanwendungen. Die Oberfläche wird in XAML beschrieben, die Logik in C#. Verbunden werden beide über Datenbindung — die Oberfläche liest ihre Werte selbst aus dem Datenmodell.
XAML statt Code
Die Oberfläche wird nicht programmiert, sondern als XML-Baum beschrieben: Fenster, Raster, Schaltflächen, Eingabefelder. Der Compiler erzeugt daraus die Objekte.
Der Vorteil ist die Trennung: Wer das Layout ändert, muss den Code nicht anfassen.
Datenbindung
Statt einem Textfeld seinen Inhalt zuzuweisen, bindet man es an eine Eigenschaft des Datenmodells. Ändert sich der Wert, aktualisiert sich die Anzeige von selbst — vorausgesetzt, die Klasse meldet die Änderung über die Schnittstelle INotifyPropertyChanged.
Das ist der Kern von WPF und der Grund, warum es sich anders anfühlt als ältere Frameworks.
Das Rendering
WPF zeichnet nicht über die klassischen Windows-Steuerelemente, sondern über DirectX. Alles ist vektorbasiert und wird bei jeder Größenänderung neu berechnet — deshalb skalieren WPF-Oberflächen sauber auf hochauflösenden Bildschirmen.
Steuerelemente sind vollständig umgestaltbar: Über ControlTemplates lässt sich das Aussehen austauschen, ohne das Verhalten zu ändern.
MVVM
Das übliche Entwurfsmuster teilt die Anwendung in drei Teile: Model für die Daten, View für die Oberfläche in XAML und ViewModel als Bindeglied, das Werte und Befehle bereitstellt.
Die View kennt das ViewModel, das ViewModel kennt die View nicht. Dadurch bleibt die Logik ohne Oberfläche testbar.
Wann WPF passt
Für Windows-Desktopanwendungen mit umfangreicher Oberfläche — Werkzeuge, Verwaltungssoftware, Messtechnik. Plattformübergreifende Anwendungen brauchen ein anderes Framework.
Woher WPF kommt
Windows Presentation Foundation erschien 2006 mit der dritten Version des .NET Framework und löste Windows Forms als bevorzugte Technik für Desktopoberflächen ab. Der wesentliche Unterschied war die Trennung von Beschreibung und Verhalten. Die Oberfläche wird in XAML beschrieben, die Logik in C# oder Visual Basic.
Seit 2018 ist WPF quelloffen und Teil von .NET, nicht mehr nur des alten .NET Framework. Damit läuft es auch auf aktuellen .NET-Versionen. Der Betrieb bleibt auf Windows beschränkt.
Alternativen im Microsoft-Umfeld sind WinUI für moderne Windows-Anwendungen und die plattformübergreifende Bibliothek MAUI. Für rein interne Windows-Software ist WPF weiterhin verbreitet. Der Bestand an bestehenden Anwendungen ist groß.
Wie XAML funktioniert
XAML ist eine XML-basierte Sprache, in der Elemente einer Oberfläche als verschachtelte Marken beschrieben werden. Jedes Element entspricht dabei einer Klasse, jedes Attribut einer Eigenschaft. Der Übersetzer erzeugt daraus im Hintergrund normalen Code.
Der Vorteil liegt in der Lesbarkeit und darin, dass Gestaltung und Programmlogik getrennt bleiben. Designwerkzeuge können XAML erzeugen, ohne die Logik zu berühren. Versionsverwaltung wird dadurch übersichtlicher.
Layout entsteht über Container wie Grid, StackPanel und DockPanel, die ihre Kinder nach festen Regeln anordnen. Absolute Positionen sind möglich, aber unüblich. Damit passen sich Oberflächen an verschiedene Fenstergrößen an.
Was Datenbindung leistet
Bei der Datenbindung wird eine Eigenschaft eines Bedienelements mit einer Eigenschaft eines Objekts verknüpft. Ändert sich der Wert, aktualisiert sich die Anzeige automatisch. Voraussetzung ist, dass das Objekt Änderungen meldet.
Dafür implementiert es die Schnittstelle INotifyPropertyChanged und löst bei jeder Änderung ein Ereignis aus. Für Listen übernimmt das die ObservableCollection. Ohne diese Meldungen bleibt die Anzeige stehen.
Bindungen können in beide Richtungen laufen, sodass Eingaben im Feld direkt im Objekt landen. Zusätzlich lassen sich Werte über Konverter umformen, etwa eine Zahl in eine Farbe. Das erspart viel Ereigniscode.
Was MVVM bedeutet
Das Muster teilt eine Anwendung in drei Teile: Model für die Daten, View für die Oberfläche und ViewModel als Vermittler dazwischen. Das ViewModel stellt Eigenschaften und Befehle bereit, an die die Oberfläche bindet. Die Oberfläche kennt die Daten nicht direkt.
Der Vorteil ist die Testbarkeit: Das ViewModel lässt sich ohne Oberfläche prüfen. Auch der Austausch der Oberfläche wird einfacher. Genau dafür wurde WPF entworfen.
Aktionen werden nicht über Ereignishandler, sondern über Befehle abgebildet, die die Schnittstelle ICommand umsetzen. Sie enthalten zusätzlich eine Prüfung, ob die Aktion gerade möglich ist. Schaltflächen werden dadurch automatisch aktiviert oder gesperrt.
Wann sich WPF noch lohnt
Sinnvoll bleibt es für Windows-Anwendungen mit vielen Formularen, Tabellen und komplexer Datenlogik, etwa in Verwaltung, Industrie und Labor. Dort spielt die Datenbindung ihre Stärken aus. Auch die große Zahl vorhandener Bibliotheken spricht dafür.
Für plattformübergreifende Anwendungen oder für Oberflächen im modernen Windows-Stil sind andere Techniken die bessere Wahl. Für neue Projekte lohnt deshalb eine bewusste Entscheidung. Bestehende Anwendungen laufen weiterhin.
Was bei der Umstellung zu beachten ist
Bestehende Anwendungen auf dem alten .NET Framework lassen sich auf aktuelles .NET portieren, meist mit überschaubarem Aufwand. Stolpersteine sind Abhängigkeiten von Bibliotheken ohne aktuelle Version und von Windows-spezifischen Schnittstellen. Microsoft stellt dafür Analysewerkzeuge bereit.
Der Gewinn liegt in Wartung, Sicherheitsaktualisierungen und Leistung. Das alte Framework erhält nur noch sicherheitsrelevante Korrekturen. Für langlebige Anwendungen ist der Wechsel deshalb sinnvoll.
Die Oberfläche selbst bleibt dabei unverändert, weil XAML und Bindungen gleich funktionieren. Das macht die Portierung berechenbar. Umgeschrieben werden muss vor allem die Projektdatei.
Wo man Einstieg findet
Die offizielle Dokumentation von Microsoft enthält Einführungen, vollständige Referenz und Beispielprojekte. Der Quellcode liegt öffentlich auf GitHub. Beides ist kostenfrei zugänglich.
Für die Praxis empfiehlt sich, zuerst ein kleines Projekt mit Datenbindung und MVVM aufzubauen, statt die Referenz zu lesen. Die Konzepte erschließen sich am Beispiel schneller. Fertige Vorlagen erleichtern den Start.
Wie Ereignisse behandelt werden
Ereignisse wie Klicks laufen in WPF entlang der Elementhierarchie, entweder von außen nach innen oder von innen nach außen. Dieses Verfahren heißt Routed Events und erlaubt es, ein Ereignis an einer übergeordneten Stelle zu behandeln. Damit lassen sich Wiederholungen im Code vermeiden.
Im MVVM-Muster werden Ereignisse nach Möglichkeit durch Befehle ersetzt. Für Fälle ohne passenden Befehl gibt es Hilfsbibliotheken, die Ereignisse an Befehle binden. Sie sind weit verbreitet.
Häufige Fragen
Was ist XAML?
Eine XML-Sprache zur Beschreibung der Oberfläche.
Läuft WPF auch auf Linux?
Nein, nur unter Windows.
Was ist INotifyPropertyChanged?
Die Schnittstelle, über die das Modell Änderungen meldet.
Was bedeutet MVVM?
Model, View, ViewModel – die Aufteilung von Daten, Oberfläche und Bindeglied.
Quellen
Das passt dazu
Drei Artikel, die dieselbe Frage von einer anderen Seite angehen:






