【发布时间】:2019-03-18 06:08:06
【问题描述】:
在 WPF 中,我如何知道子窗口是否打开? 我的目标是同时只打开一个窗口实例..
这是父窗口中的伪代码
if (newWindowIsOpened) //just a pseudo code
{
newWindow.Close();
newWindow.Show();
}
else{
newWindow.Show();
}
提前谢谢
【问题讨论】:
标签: c# wpf visual-studio window
在 WPF 中,我如何知道子窗口是否打开? 我的目标是同时只打开一个窗口实例..
这是父窗口中的伪代码
if (newWindowIsOpened) //just a pseudo code
{
newWindow.Close();
newWindow.Show();
}
else{
newWindow.Show();
}
提前谢谢
【问题讨论】:
标签: c# wpf visual-studio window
在 WPF 中,我如何知道是否打开了子窗口
在Application.Current.Windows中寻找它:
var oldWindow = Application.Current.Windows.OfType<YourWindowType>().FirstOrDefault();
if (oldWindow != null)
{
oldWindow .close();
}
YourWindowType newWindow = new YourWindowType();
newWindow.Show();
【讨论】:
您可以添加以下代码
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;
}
谢谢, 阿杰·杜贝迪
【讨论】:
一旦窗口关闭,您将无法再次显示它。你可以重复调用Show()和Hide(),你可以通过检查IsVisible来测试它是否“打开”
【讨论】:
Show() 之后?订阅Loaded事件。窗口初始化不会立即发生,因此您必须订阅回调事件。