Jak mogę się upewnić, że tylko jedno okno WPF jest otwarte jednocześnie?

Mam okno WPF, które uruchamiam od wewnątrz aplikacji Winform. Chcę tylko zezwolić na jednorazowe otwarcie tego okna WPF na raz i nie ostrzegać tego użytkownika, jeśli spróbują go ponownie otworzyć.

Mam jednak problem, próbując wyszukać otwarte okno WPF, ponieważ okno jest uruchamiane z winform. To, co normalnie robię, to szukanie winform, szukam wszelkich przykładów tej winform istniejącej wApplication.Current.OpenForms, a kiedy w WPF szukamApplication.Current.Windows

Mam problem z tymSystem.Windows.Application.Current ma wartość null po uruchomieniu od wewnątrz winform, więc nie mogę wyszukać okna WPF w ten sposób. Czy istnieje lepszy sposób wyszukiwania istniejącej instancji otwartego okna?

Mój kod:

if (System.Windows.Application.Current != null)
                {
                    foreach (System.Windows.Window win in System.Windows.Application.Current.Windows)
                    {
                        if (win is frmCaseWpf)
                        {
                            MessageBox.Show("You may have only one active case open at a time.", "Open Case",
                                      MessageBoxButtons.OK,
                                      MessageBoxIcon.Stop);

                            win.WindowState = System.Windows.WindowState.Normal;
                            win.Focus();
                            win.Activate();
                            return;
                        }
                    }
                }

questionAnswers(6)

yourAnswerToTheQuestion