我们如何更改 Avalonia 应用程序的默认关闭模式

How can we change the default shutdown mode of an Avalonia application

我正在尝试使用 avalonia(.net 6) 构建跨平台桌面应用程序。实际上我是 avalonia 的新手。我想明确关闭我的应用程序。默认关机模式 OnLastWindowClose ,我想把它改成 OnExplicitShutdown 。我得到一个提示,它想在 App axaml.cs 的应用程序生命周期中进行配置。但我不知道该怎么做。 任何人都请帮助我。请详细说明配置的每一步。

您可以通过 StartWithClassicDesktopLifetime(T, string[], ShutdownMode) 方法在 Main() 中设置它。

EG:在“Avalonia Application”工程模板中可以在Program.cs:

中进行如下设置
public static void Main(string[] args) => BuildAvaloniaApp()
    .StartWithClassicDesktopLifetime(args, ShutdownMode.OnExplicitShutdown);

我也在 App.axaml.cs 的 OnFrameworkInitializationCompleted() 中看到它的设置,但我没有测试它...

public override void OnFrameworkInitializationCompleted()
{
    if (ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
    {
        desktop.ShutdownMode = Avalonia.Controls.ShutdownMode.OnExplicitShutdown;
    }

    base.OnFrameworkInitializationCompleted();
}

Avalonia github wiki 上有一些背景信息: Application-lifetimes