En su MainWindow.xaml.cs
, intente hacer esto:
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
Application.Current.Shutdown();
}
Según este enlace, también puede configurar ShutdownMode
en XAML:
http://msdn.microsoft.com/en-us/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>
Las aplicaciones dejan de ejecutarse solo cuando se llama al Shutdown
método de Application
. El cierre puede ocurrir implícita o explícitamente, según lo especificado por el valor de la ShutdownMode
propiedad.
Si lo establece ShutdownMode
en OnLastWindowClose
, Windows Presentation Foundation (WPF) llama implícitamente a Shutdown cuando se cierra la última ventana de una aplicación, incluso si alguna de las ventanas instanciadas actualmente está configurada como la ventana principal (consulte MainWindow).
Una ShutdownMode
de OnMainWindowClose
hace que WPF llame implícitamente a Shutdown cuando se cierra MainWindow, incluso si hay otras ventanas abiertas.
La vida útil de algunas aplicaciones puede no depender de cuándo se cierra la ventana principal o la última ventana, o puede que no dependa en absoluto de las ventanas. Para estos escenarios, debe establecer la ShutdownMode
propiedad en OnExplicitShutdown
, que requiere una Shutdown
llamada de método explícita para detener la aplicación. De lo contrario, la aplicación continúa ejecutándose en segundo plano.
ShutdownMode
se puede configurar de forma declarativa desde XAML o mediante programación desde el código.
Esta propiedad solo está disponible en el hilo que creó el Application
objeto.
En su caso, la aplicación no se cierra porque probablemente esté usando el valor predeterminado OnLastWindowClose
:
Si lo establece ShutdownMode
en OnLastWindowClose
, WPF llama implícitamente a Shutdown cuando se cierra la última ventana de una aplicación, incluso si alguna de las ventanas instanciadas actualmente está configurada como la ventana principal (consulte MainWindow
).
Dado que abre una nueva ventana y no la cierra, no se llama al cierre.