如何重新打开关闭的窗口

本文关键字:窗口 开关 何重新 | 更新日期: 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代码后面。