에서 다음을 MainWindow.xaml.cs
수행하십시오.
protected override void OnClosed(EventArgs e)
{
base.OnClosed(e);
Application.Current.Shutdown();
}
이 링크 ShutdownMode
에서 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>
의 Shutdown
메서드 Application
가 호출 될 때만 응용 프로그램 실행이 중지됩니다 . 종료는 ShutdownMode
속성 값에 지정된대로 암시 적으로 또는 명시 적으로 발생할 수 있습니다 .
를 설정하면 ShutdownMode
할 수 OnLastWindowClose
있는 현재 인스턴스화 창 메인 창으로 설정 한 경우에도 응용 프로그램 닫히고의 마지막 창 (MainWindow를 참조) 할 때, WPF (Windows Presentation Foundation)는 암시 적으로 종료를 호출합니다.
ShutdownMode
의 OnMainWindowClose
원인은 MainWindow를 닫히고는, 다른 창은 현재 열려있는 경우에도 때 암시 적으로 종료를 호출하는 WPF.
일부 응용 프로그램의 수명은 주 창 또는 마지막 창이 닫히는시기에 의존하지 않거나 창에 전혀 의존하지 않을 수 있습니다. 이러한 시나리오의 경우 ShutdownMode
속성을 로 설정해야 합니다.이 경우 애플리케이션을 중지하려면 OnExplicitShutdown
명시적인 Shutdown
메서드 호출 이 필요합니다 . 그렇지 않으면 응용 프로그램이 백그라운드에서 계속 실행됩니다.
ShutdownMode
XAML에서 선언적으로 또는 코드에서 프로그래밍 방식으로 구성 할 수 있습니다.
이 속성은 Application
개체 를 만든 스레드에서만 사용할 수 있습니다 .
귀하의 경우 기본값을 사용하고 있기 때문에 앱이 닫히지 않습니다 OnLastWindowClose
.
사용자가 설정 한 경우 ShutdownMode
에 OnLastWindowClose
어떤 현재 인스턴스 창 메인 창으로 설정 한 경우에도 응용 프로그램 닫히고의 마지막 창 (볼 때, WPF는 암시 적으로 종료를 호출 MainWindow
).
새 창을 열고 닫지 않기 때문에 shutdown이 호출되지 않습니다.