Gözlerinde farklı MainWindow.xaml.cs, bunu deneyin:
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
Application.Current.Shutdown();
}
Bu bağlantı başına ShutdownMode, XAML'de de ayarlayabilirsiniz :
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>
Uygulamalar, yalnızca Shutdownyöntemi Applicationçağrıldığında çalışmayı durdurur . Kapatma, ShutdownModeözelliğin değeriyle belirtildiği gibi örtük veya açık bir şekilde gerçekleşebilir .
Eğer ayarlarsanız ShutdownModeiçin OnLastWindowCloseherhangi halen örneği pencereler ana pencere olarak ayarlanmış olsa bile, bir uygulama kapanmadan son pencere, (MainWindow bakınız) zaman Windows Presentation Foundation (WPF) örtülü Kapatma çağırır.
Bir ShutdownModeait OnMainWindowClosenedenleri MainWindow kapanır, diğer pencereler şu anda açık olsa bile zaman örtük Kapatma çağırmak wpf.
Bazı uygulamaların ömrü, ana pencerenin veya son pencerenin ne zaman kapatıldığına bağlı olmayabilir veya pencerelere hiç bağlı olmayabilir. Bu senaryolar ShutdownModeiçin OnExplicitShutdown, Shutdownuygulamayı durdurmak için açık bir yöntem çağrısı gerektiren özelliği olarak ayarlamanız gerekir . Aksi takdirde uygulama arka planda çalışmaya devam eder.
ShutdownMode XAML'den bildirimli olarak veya koddan programlı olarak yapılandırılabilir.
Bu özellik yalnızca Applicationnesneyi oluşturan iş parçacığından kullanılabilir .
Sizin durumunuzda, muhtemelen varsayılanı kullandığınız için uygulama kapanmıyor OnLastWindowClose:
Eğer ayarlarsanız ShutdownModeiçin OnLastWindowCloseherhangi halen örneği pencereler ana pencere olarak ayarlanmış olsa bile, bir uygulama kapanmadan son pencere, (görünce, WPF örtülü Kapatma çağırır MainWindow).
Yeni bir pencere açtığınız ve kapatmadığınız için, kapatma çağrılmaz.