如何知道子窗口是打开还是关闭? WPF

时间:2019-03-18 06:08:06

标签: c# wpf visual-studio window

在WPF中,我如何知道是否打开了子窗口? 我的目标是一次只打开一个窗口实例。

这是父窗口中的伪代码

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

预先感谢

3 个答案:

答案 0 :(得分:1)

您可以添加以下代码

公共布尔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 :(得分:1)

  

在WPF中,我如何知道是否打开了子窗口

Application.Current.Windows中寻找它:

var oldWindow = Application.Current.Windows.OfType<YourWindowType>().FirstOrDefault();
if (oldWindow != null)
{
    oldWindow .close();
}
YourWindowType newWindow = new YourWindowType();
newWindow.Show();

答案 2 :(得分:0)

一旦窗口关闭,您将无法再次显示它。不过,您可以反复调用Show()Hide(),也可以通过检查IsVisible

来测试其是否“打开”