如何重新打开关闭的窗口
本文关键字:窗口 开关 何重新 | 更新日期: 2023-09-27 18:25:15
我将应用程序中的ShutdownMode
切换为OnExplicitShutdown
,所以当我关闭窗口时,我的应用程序仍在工作,我尝试像这样重新打开窗口:
new MainWindow().Show;
但我有以下错误:Set property '...ViewModelLocator.AutoWireViewModel' threw an exception.
和InnerException
是:'AutoWireViewModel' property was already registered by 'ViewModelLocator'
你知道怎么解决这个问题吗?
我使用Microsoft.Prism
中的ViewModelLocator
不幸的是,在Window
关闭后,您根本无法重新打开它。然而,你可以"假装"你可以,并使用一点欺骗。。。与其一开始就关闭Window
,不如简单地隐藏它,因为它可以被隐藏并重新显示任意次数:
YourWindow.Visibility = Visibility.Collapsed;
您可以通过将事件处理程序附加到Window.Closing
事件来稍微改善这种情况。此特定事件提供了一种取消Close
操作的方法,因此此时,您可以将其隐藏:
private void Window_Closing(object sender, CancelEventArgs e)
{
// Cancel Window closing
e.Cancel = true;
// Hide Window instead
YourWindow.Visibility = Visibility.Collapsed;
}
如果您愿意,也可以使用Window.OnClosing
方法将此功能放在Window
代码后面。