【发布时间】:2013-06-20 13:16:39
【问题描述】:
我只想在 WPF 中有一个我的 Window 实例。
我在窗口中的代码:
public static bool IsOpen { get; private set; }
private void Window_Loaded(object sender, RoutedEventArgs e)
{
IsOpen = true;
}
private void Window_Unloaded(object sender, RoutedEventArgs e)
{
IsOpen = false;
}
我在打开函数中的代码
if (MyWindow!= null)
{
if (MyWindowName.IsOpen)
{
MyWindow.Activate();
}
else
{
MyWindow.Close();
MyWindow= null;
}
}
if (MyWindow!= null) return;
MyWindow= new MyWindowName();
MyWindow.Show();
MyWindow.Activate();
但如果我快速单击 3-5 次,我可以打开许多窗口实例。
谢谢
【问题讨论】:
-
你不需要
IsOpen属性,因为Window.IsLoaded会给你完全相同的结果 -
采用单例模式。