【转】[WPF] 关闭模式决定了应用程序何时关闭

秤心 / 2024-10-29 / 原文

在 WPF (Windows Presentation Foundation) 中,关闭模式(Shutdown Mode)决定了应用程序何时关闭。可以通过以下方式设置关闭模式:

XAML 设置: 在 App.xaml 文件中,可以通过 ShutdownMode 属性来设置关闭模式。WPF 提供了三种关闭模式:

  • OnLastWindowClose:默认值,当最后一个窗口关闭时,应用程序关闭。
  • OnMainWindowClose:当主窗口关闭时,应用程序关闭。
  • OnExplicitShutdown:只有在调用 Application.Shutdown 方法时,应用程序才会关闭。

示例代码:

<Application x:Class="YourNamespace.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             StartupUri="MainWindow.xaml"
             ShutdownMode="OnLastWindowClose">
</Application>

代码设置: 也可以在代码中动态设置关闭模式。在 App.xaml.cs 文件中,可以在 OnStartup 方法中设置 ShutdownMode 属性。

示例代码:

public partial class App : Application
{
    protected override void OnStartup(StartupEventArgs e)
    {
        base.OnStartup(e);
        this.ShutdownMode = ShutdownMode.OnLastWindowClose;
    }
}

手动关闭应用程序: 如果使用 OnExplicitShutdown 模式,需要在适当的时候调用 Application.Shutdown 方法来关闭应用程序。

示例代码:

private void SomeMethod()
{
    // 执行一些操作后关闭应用程序
    Application.Current.Shutdown();
}

通过以上方法,可以灵活地控制 WPF 应用程序的关闭行为。