在WPF中,我如何知道是否打开了子窗口? 我的目标是一次只打开一个窗口实例。
这是父窗口中的伪代码
if (newWindowIsOpened) //just a pseudo code
{
newWindow.Close();
newWindow.Show();
}
else{
newWindow.Show();
}
预先感谢
答案 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