Как узнать, детское окно открыто или закрыто? WPF - PullRequest
1 голос
/ 18 марта 2019

В WPF, как узнать, открыто ли дочернее окно? моя цель - открыть только один экземпляр окна одновременно ..

Вот псевдокод в родительском окне

if (newWindowIsOpened)    //just a pseudo code
{
newWindow.Close();
newWindow.Show();
}
else{
newWindow.Show();
}

Заранее спасибо

Ответы [ 3 ]

1 голос
/ 18 марта 2019

Вы можете добавить ниже код

public bool newWindowIsOpened;

    public Window14()
    {
        InitializeComponent();

        Window1 window1 = new Window1();
        window1.Closed += new EventHandler(window1_Closed);
        newWindowIsOpened = false;
        window1.Show();
    }

    void window1_Closed(object sender, EventArgs e)
    {
        newWindowIsOpened = true;
    }

Спасибо, Ajay Dubedi

1 голос
/ 18 марта 2019

В WPF, как узнать, открыто ли дочернее окно

Ищите его в Application.Current.Windows:

var oldWindow = Application.Current.Windows.OfType<YourWindowType>().FirstOrDefault();
if (oldWindow != null)
{
    oldWindow .close();
}
YourWindowType newWindow = new YourWindowType();
newWindow.Show();
0 голосов
/ 18 марта 2019

Как только окно закрыто, вы не можете его снова показать. Тем не менее, вы можете повторно вызывать Show() и Hide(), и вы можете проверить, является ли он "открытым", проверив IsVisible

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...