在您的中MainWindow.xaml.cs,尝试执行以下操作:
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
Application.Current.Shutdown();
}
通过此链接,您还可以ShutdownMode在XAML中设置:
http://msdn.microsoft.com/zh-CN/library/system.windows.application.shutdownmode.aspx
<Application
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
StartupUri="MainWindow.xaml"
ShutdownMode="OnExplicitShutdown"
>
</Application>
仅当调用的Shutdown方法时,应用程序才会停止运行Application。根据ShutdownMode属性值的指定,关闭可以隐式或显式进行。
如果设置ShutdownMode为OnLastWindowClose,则Windows Presentation Foundation(WPF)将在应用程序中的最后一个窗口关闭时隐式调用Shutdown,即使将任何当前实例化的窗口设置为主窗口(请参见MainWindow)。
一ShutdownMode的OnMainWindowClose原因WPF隐式调用shutdown当主窗口关闭,即使其他窗口是当前打开的。
某些应用程序的寿命可能不依赖于主窗口或最后一个窗口何时关闭,或者根本不依赖于窗口。对于这些情况,您需要将ShutdownMode属性设置为OnExplicitShutdown,这需要显式的Shutdown方法调用来停止应用程序。否则,应用程序将继续在后台运行。
ShutdownMode 可以从XAML声明式配置或从代码以编程方式配置。
此属性仅在创建Application对象的线程中可用。
就您而言,该应用无法关闭,因为您可能正在使用默认值OnLastWindowClose:
如果设置ShutdownMode为OnLastWindowClose,即使应用程序中的最后一个窗口关闭,WPF也会隐式调用Shutdown,即使将任何当前实例化的窗口设置为主窗口(请参阅参考资料MainWindow)。
由于您要打开新窗口而不关闭窗口,因此不会调用shutdown。