gpt4 book ai didi

winforms - 如何使用 .NET Core 通用主机运行 Winforms 并让它控制主机生命周期?

转载 作者:行者123 更新时间:2023-12-01 21:47:29 24 4
gpt4 key购买 nike

如何使用 .NET Core 的通用主机运行 Win Forms 并让它控制主机生命周期?我想使用主机的默认构建器并使用扩展方法来添加我的启动表单。我希望主机在启动窗体关闭时关闭。

最佳答案

您可以使用我编写的 OswaldTechnologies.Extensions.Hosting.WindowsFormsLifetime 库来完成此操作。

安装包:

Install-Package OswaldTechnologies.Extensions.Hosting.WindowsFormsLifetime
使用默认 .NET Core Win Forms 模板之前的

Program 类:

static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.SetHighDpiMode(HighDpiMode.SystemAware);
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
}

安装包后将Program类改成如下:

static class Program
{
static void Main()
{
CreateHostBuilder().Build().Run();
}

public static IHostBuilder CreateHostBuilder() =>
Host.CreateDefaultBuilder(Array.Empty<string>())
.UseWindowsFormsLifetime<Form1>()
.ConfigureServices((hostContext, services) =>
{

});
}

您可以在 Github 仓库中查看代码:https://github.com/alex-oswald/WindowsFormsLifetime

编辑 2021-11-16 该库针对 .NET 6 进行了更新。引入了最少的 API,使用通用主机启动 Windows 窗体应用程序只需 4 行!

var builder = WebApplication.CreateBuilder(args);
builder.Host.UseWindowsFormsLifetime<Form1>();
var app = builder.Build();
app.Run();

关于winforms - 如何使用 .NET Core 通用主机运行 Winforms 并让它控制主机生命周期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60154460/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com