Otwórz okno ustawień WPF z aplikacji formularzy [duplikat]

Możliwy duplikat:
Powiadomienie o zamknięciu interfejsu WPF

Zadałem wcześniej bardzo podobne pytanie, ale nie otrzymałem żadnej użytecznej odpowiedzi. Mam nadzieję, że ktoś tam może mi pomóc.

Mam istniejącą aplikację na tacy zaprogramowaną jako aplikacja Windows Form. Mam istniejący formularz ustawień zaprogramowany jako WPF.

Aplikacja Tray musi być w stanie: * Otworzyć aplikację n razy, przy czym tylko jedna instancja może być otwarta w danym momencie * Otrzymuj powiadomienie, gdy użytkownik zamknie aplikację Ustawienia.

Aplikacja Ustawienia korzysta z ResourceDictionary, co moim zdaniem oznacza, że ​​musi zostać uruchomione z App.xaml.

Mogę otworzyć okno Ustawienia, aby raz się otworzyło i powiadomić Tacę, gdy zostanie zamknięta, używając następującego kodu, ale nie mogę go otworzyć ponownie.

        if (gui == null)
        {
            //shell = new mainWindow();
            //shell.CloseEvent += settings_FormClosed;

            gui = new App();
            //gui.ShutdownMode = ShutdownMode.OnExplicitShutdown;
            gui.MainWindow = shell;
            gui.InitializeComponent();
            //gui.Run();
            gui.Exit += new System.Windows.ExitEventHandler(settings_FormClosed);

            IsUIOpen = true;
        }

Jeśli odkomentuję powyższe wiersze, mogę przechwycić zdarzenie zamknięcia i ustawić Widoczność na Ukryty. Następnym razem, gdy użytkownik wybierze Ustawienia, mogę ustawić go z powrotem na Widoczny. Jednak przy pierwszym otwarciu ustawień nie wywoła zdarzenia Exit, a powłoka nie otrzyma wszystkich ReferenceDictionary (lub utraci dostęp do niego), więc okno nie wyświetla się poprawnie.

Czy istnieje sposób na uruchomienie WPF z aplikacji i dostęp do MainWindow (który często wydaje się być pusty i nie jest typem mojego własnego okna), więc do mainWindow można dodać niestandardowy listener?

Alternatywnie, czy istnieje sposób na pozbycie się statycznej aplikacji, dzięki czemu mogę ponownie utworzyć instancję, gdy następnym razem użytkownik kliknie Ustawienia.

Wiem, że musi istnieć jakiś sposób, aby WPF grał dobrze z Win Forms. Dziękuję wszystkim, którzy próbują pomóc. To daje mi poważne bóle głowy.

questionAnswers(1)

yourAnswerToTheQuestion