重新加载wpf窗口

时间:2010-11-10 22:09:12

标签: c# wpf window

我有主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();
}
}

2 个答案:

答案 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()重新展示。