Wie XAML-Dateien verknüpfen mit cs-Dateien?
Es scheint, dass die XAML-Dateien haben sollte entsprechende .cs-Dateien in einem C# - Projekt. Ich weiß Visual Studio nicht alle die Dinge für uns. Ich bin einfach nur neugierig wie sind Sie miteinander verknüpft? Ich meine, Sie sind die im Projekt festgelegten Datei, oder einfach nur, weil Sie den gleichen Namen haben? Und auch, App.der xaml-Datei gibt die startup-Datei, aber wie weiß der compiler das wissen? Ist es möglich, ernennen Sie eine andere Datei als App.xaml zu tun die gleichen Dinge wie App.xaml hat?
- bitte nicht wiederholen die tags (C#, WPF) im Titel.
- Beachten Sie, dass die gleichen Mechanismen verwendet werden, zu verknüpfen, VB-code in einer WPF - + - VB-Projekt, hier gibt es nichts, die C# - spezifischen (vorausgesetzt, Sie ersetzen ".cs" ist Beispiel-Dateinamen ".vb").
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es keine Magie passiert in WPF. Alles, was geschehen ist geschrieben, wo einige. Es ist VS, die erzeugt einige der code.
Den xaml-code verknüpft ist mit der a-Klasse.
VS generiert für Sie eine MainWindow.cs-Datei, die eine Klasse mit dem Namen
MainWindow
vonWindow
geben. Die Art ist hier wichtig. Wenn Sie einen anderen Typ, den der compiler nicht mit Verlinkung auf Ihre MainWindow.xaml selbst wenn es die richtige Klasse name.Schließlich, für ein UserControl-haben Sie die xaml-tag
<UserControl
statt einerWindow
tag.Eine weitere Sache, die der compiler generiert bei der Kompilierung wird eine Datei namens
MainWindow.g.cs
imobj
Ordner, wo finden Sie auch eineMainWindow.baml
die kompilierte version der xaml-Datei.Diese Datei enthält eine partial class MainWindow mit alle Steuerelemente erklärt, dass Sie in der XAML-Code. Das ist ein hinter der Szene, job, den der compiler tut, das ist unabhängig von der Verknüpfung zwischen XAML und die relative Klasse.
Die Anwendung ist die gleiche, nur dass die Klasse der Typ-änderungen. Dies ist die Verknüpfung von XAML mit der Klasse.
Für das StartUp-Fenster, es ist angegeben in der XAML-Datei standardmäßig zu einer Klasse. Sie können jedoch anpassen .cs-Datei und do yo, eigene Logik in der ApplicationStartUp Veranstaltung.
Gleiche für die Shutdown-Ereignis. Standardmäßig ist es, wenn alle Ihre Fenster sind geschlossen, aber Sie können es ändern, wenn das Hauptfenster geschlossen wird oder eine explizite Herunterfahren.
Den csproj (im Fall von c#) sagt dem compiler, welche Klasse die Anwendung.
Nicht nur das XAML-tag wie andere gesagt haben. Das tag definiert nur den Typ der Klasse ist und nicht das Programm starten mit dieser speziellen Klasse.
(Quelle: microsoft.com)
Lesen Sie hier weiter :
MSDN - erstellen von WPF-Anwendung
MSDN - Code-Behind und XAML in WPF
MSDN - Application-Management im Überblick
Der code-behind-definiert eine abgeleitete Klasse von
Window
,UserControl
... und dann die XAML-root-element referenziert, der Typ mit derx:Class
Attribut.Den
App.xaml
ist der Start, weil es einen<Application>
root-element, mit dem gleichen Mechanismus zum verweisen auf den code hinter.