WPF-Basics: Namespaces

Lies in den Artikel rein und unten bekommst Du ein unschlagbares Angebot!

Bislang haben wir immer mit WPF-Projekten gearbeitet, ohne uns Gedanken um das Stammelement einer .xaml-Datei zu machen. Dieses Element, das in der Regel Window heißt, enthält zum Beispiel einige Namespace-Angaben und weitere Informationen. In diesem Artikel wollen wir erläutern, was es mit diesen Attributen auf sich hat und wie sich diese auf die Definition der vollständigen .xaml-Datei auswirken.

Window oder …

Wie schon erwähnt, ist das Stammelement einer .xaml-Datei meist ein Window-Element – also eines, das ein Fenster beschreibt. Es gibt allerdings noch einige andere Elementtypen, zum Beispiel das in diesem Magazin auch schon verwendete Page-Element, mit dem man eine Seite beschreibt, die innerhalb anderer Elemente eingebunden werden kann.

Wenn Sie eine neue WPF-Anwendung anlegen, erhalten Sie direkt ein Fenster mit dem Titel MainWindow, dass einige für den Einsteiger kryptisch anmutende Elemente enthält (siehe Listing 1).

<Window x:Class="Experimente.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
         xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
         xmlns:local="clr-namespace:Experimente"
         mc:Ignorable="d"
         Title="MainWindow" Height="350" Width="525">
     <Grid>
         
     </Grid>
</Window>

Listing 1: Namespaces eines Window-Elements

Das erste Attribut namens x:Class gibt an, welche Klasse die Code behind-Klasse der aktuellen .xaml-Datei ist. Der Teil vor dem Punkt gibt den Namespace an, der Teil hinter dem Punkt den Klassennamen.

Im entsprechenden Code-Modul finden Sie als oberstes Element das Namespace-Objekt namens Experimente, darunter die Klasse mit dem unter x:Class angegebenen Namen MainWindow. Der Doppelpunkt und die folgende Bezeichnung Window geben an, dass die Klasse MainWindow von der Klasse Window abgeleitet ist und somit alle Eigenschaften, Methoden und Ereignisse der Klasse Window besitzt. Die Methode public MainWindow ist die sogenannte Konstruktor-Methode, die automatisch beim Initialisieren der Klasse aufgerufen wird:

namespace Experimente {
     public partial class MainWindow : Window {
         public MainWindow() {
             InitializeComponent();
         }
     }
}

Beim Starten wird in der Datei App.xaml die unter Startup-Uri angegebene .xaml-Datei eingelesen, hier MainWindow.xaml, die dortige unter x:Class angegebene Code behind-Klasse gesucht und die Konstruktor-Methode aufgerufen. Diese wiederum ruft die Methode InitializeComponent auf, die grob zusammengefasst aus der in der .xaml-Datei enthaltenen Definition das entsprechende Objekt zusammenstellt, also beispielsweise ein Window-Element mit all seinen Steuerelementen.

 

Schreibe einen Kommentar