Как получить статическую ссылку на окно WPF?
Я испробовал огромное количество способов получить статическую ссылку на мое окно в моей программе. Мне нужно получить доступ ко всем его членам во время выполнения из разных классов, поэтому необходима статическая ссылка.
То, что я хотел бы иметь что-то вродеProgram.Window1
, гдеCore
статичен иMyWindow
является одним из его статических членов.
В WinForms я обычно объявляю свою статическую форму в Program.cs, но, похоже, это не работает с WPF и их пользовательским приложением App.xaml ApplicationDefinition.
Как мне это сделать?
Примечание. Я уже пробовал несколько способов: использование прямого вызова в новом окне (т.е.Program.Window1 = new Window1()
) не сработает, так как я получаю какое-то исключение по инвалидности потока. Как я понимаю, пока только ApplicationDefinitions может запускать окна в WPF.
Вот исключение всякий раз, когда я пытаюсь создать окно «по коду», а не по умолчанию StartupUri XAML ApplicationDefinition:
Вызывающий поток должен быть STA, потому что это требуется для многих компонентов пользовательского интерфейса.