Wie man eine statische Referenz auf ein WPF-Fenster?

Habe ich versucht, eine riesige Menge von Möglichkeiten, um einen statischen Verweis von meinem Fenster in mein Programm. Ich brauche Zugriff auf alle seine Mitglieder zur Laufzeit aus verschiedenen Klassen, so dass eine statische Referenz benötigt wird.

Was ich möchte, ist so etwas wie Program.Window1, wo Core ist statisch und MyWindow ist eines Ihrer statischen Mitglieder.

In WinForms, ich in der Regel erklären, meine statischen form im Programm.cs, aber das scheint nicht zu funktionieren mit WPF und Ihre eigene "App.xaml" ApplicationDefinition.

Wie kann ich es tun?

Hinweis: ich habe versucht eine Reihe von Möglichkeiten bereits: mit einem direkten Aufruf ein neues Fenster (d.h. Program.Window1 = new Window1()) wird nicht funktionieren, da ich einige thread Nichtigkeit Ausnahme. So wie ich das bisher verstehe, nur ApplicationDefinitions können, starten Sie windows im WPF.

Hier ist die Ausnahme, wenn ich versuche, ein Fenster zu erstellen ", indem Sie code" und nicht von der Standard-XAML-ApplicationDefinition die StartupUri:

Den aufrufenden thread muss STA, weil viele UI-Komponenten dies erfordern.

  • Sie haben, um mark Main-Methode mit [STAThread] wenn Sie brauchen, um zu erstellen Sie windows in code.
InformationsquelleAutor Lazlo | 2010-02-13
Schreibe einen Kommentar