Comment obtenir une référence statique à une Fenêtre WPF?

J'ai essayé une énorme quantité de façons d'obtenir une référence statique de ma fenêtre en travers de mon programme. J'ai besoin d'accéder à l'ensemble de ses membres au moment de l'exécution de différentes classes, la référence statique est nécessaire.

Ce que j'aimerais avoir, c'est quelque chose comme Program.Window1, où Core est statique et MyWindow est l'un de ses membres statiques.

En WinForms, j'ai l'habitude de déclarer mon formulaire statique dans le Programme.cs, mais cela ne semble pas fonctionner avec WPF et leur coutume "App.xaml" ApplicationDefinition.

Comment puis-je le faire?

Note: j'ai essayé un certain nombre de façons: à l'aide d'un appel direct à une nouvelle fenêtre (c'est à dire Program.Window1 = new Window1()) ne fonctionnera pas, que je reçois du fil d'invalidité exception. Ce que je comprends pour l'instant, seuls ApplicationDefinitions pouvez lancer windows en WPF.

Ici est l'exception chaque fois que j'essaie de créer une fenêtre "code", et non par le défaut de XAML ApplicationDefinition de StartupUri:

Le thread appelant doit être PERSONNEL, parce que de nombreux composants de l'INTERFACE utilisateur, l'exigent.

Vous n'aurez qu'à indiquer la méthode Principale avec [STAThread] si vous avez besoin pour créer des fenêtres dans le code.

OriginalL'auteur Lazlo | 2010-02-13