我有主wpf窗口,在这个窗口中我创建新的从属窗口并添加字典。关闭从属窗口后,它可能再次显示出来。
public class MainWindow:Window
{
private dictionary<string, SlaveWindow> _winDic= new dictionary<string, SlaveWindow>();
public void SomeMethod()
{
var mySlaveWindow = new SlaveWindow();
//add to dictionary
_winDic.Add("mySlaveWindow",w);
//close slave window w
//show
_winDic[mySlaveWindow].Show();
}
}
答案 0 :(得分:1)
以下执行此操作的方法取自this msdn页面。
订阅Window的Closing事件,并将其添加到代码中。
private bool m_close = false;
// Shadow Window.Close to make sure we bypass the Hide call in
// the Closing event handler
public new void Close()
{
m_close = true;
base.Close();
}
private void Window_Closing(object sender, CancelEventArgs e)
{
// If Close() was called, close the window (instead of hiding it)
if (m_close == true)
{
return;
}
// Hide the window (instead of closing it)
e.Cancel = true;
this.Hide();
}
这将确保您的窗口最终关闭并且不会悬空。
答案 1 :(得分:0)
你需要隐藏窗口而不是关闭它。
如果您致电Hide()
,该窗口将会像您拨打Close()
时一样消失,但您稍后可以再次致电Show()
重新展示。