This post originated from an RSS feed registered with .NET Buzz
by -.
Original Post: Code-Only Anwendungen mit WPF entwickeln
Feed Title: Norbert Eder - Living .NET
Feed URL: http://feeds.feedburner.com/NorbertEder-Livingnet
Feed Description: Copyright (c)2005, 2006 by Norbert Eder
Eine WPF-Anwendung muss nicht immer mit Hilfe von XAML geschrieben werden, auch ohne XAML kann eine WPF-Anwendung erstellt werden. Warum dies notwendig ist könnte mehrere Gründe haben, der wohl oft vorkommendste: XAML ist nicht bekannt und es fehlt die Einarbeitungszeit. Eine andere Möglichkeit besteht natürlich auch darin, dass zur Laufzeit ein Fenster dynamisch erstellt werden sollen.
Wie ist also vorzugehen: Grundsätzlich kann eine ganz normale WPF-Anwendung erstellt werden. Die Dateien App.xaml und Window1.xaml sind anschließend zu löschen (die Codebehind-Dateien werden automatisch mit gelöscht). Der Vorteil dieser Variante liegt darin, dass die notwendigen Referenzen alle dem Projekt hinzugefügt werden und somit diesbezüglich keinerlei Aufwand entsteht (natürlich kann dies auch manuell geschehen).
Wer dies manuell machen möchte, muss folgende Referenzen seinem Projekt hinzufügen:
PresentationCore
PresentationFramework
WindowsBase
Nun wird im ersten Schritt eine neue Klasse App.cs dem Projekt hinzugefügt. Diese erbt von Application und enthält den notwendigen Einstiegspunkt.
Im Grunde passiert nichts anderes, als dass eine neue Application-Instanz erstellt wird und deren Methode Run aufgerufen wird. Als Parameter erhält sie eine Instanz des Typs MainWindow. MainWindow ist so aktuell noch nicht verfügbar, werden wir jedoch im nächsten Schritt erstellen.
Die Klasse MainWindow.cs erbt von Window und stellt unser Hauptfenster dar. Wie zu sehen ist, werden nun lediglich durch Code (kein XAML) die einzelnen anzuzeigenden Elemente erstellt. Sämtliche Methoden wurden manuell erstellt, d.h. es gibt hier keinen Code, der irgendwie automatisch erstellt wurde.
Das Ergebnis kann in der nachfolgenden Grafik bewundert werden. Natürlich kann auf diese Variante ebenfalls ein hübsches Design erzeugt werden. Diese Demo sollte jedoch nur grundsätzlich zeigen, wie Code-Only-Applikationen erstellt werden können.