wpf – 是否可以重新显示和关闭对话窗口?

这里有一些上下文…我有一个System.
Windows.Window,用于显示模态消息框.我创建了一个Show()方法来初始化窗口的内容,然后调用ShowDialog().用户单击此窗口上的按钮,在Tag属性中设置有关单击按钮的一些信息,然后通过Close()关闭窗口.

正如预期的那样,一旦关闭,我尝试在Window上调用ShowDialog()时会得到一个ShowDialog异常.有没有办法重用同一个Window实例,这样我每次需要一个消息框时都不需要新建一个实例?

例如…

MessageBoxWindow mbw = new MessageBoxWindow();
result = mbw.Show("caption", "message 1");

mbw.Show("caption", "message 2");
// The above throws an exception, so I have to do this...
mbw = new MessageBoxWindow();
result = mbw.Show("caption", "message 2");

任何帮助将不胜感激!

最佳答案 使用.Hide()而不是.Close().这会删除它而不会破坏它.然后,您可以在需要时再次调用Show().

 MainWindow test = new MainWindow();
  test.Show();
  test.Hide();
  test.Show();
点赞