我正在尝试使用带有电子框架的 Blazor 开发桌面应用程序。我将 .Net 5 与服务器端 Blazor 模型和用于 .Net Core 平台的 Electron.Net 包装器包一起使用。从文档或不同的 Web 资源来看,为桌面配置 Blazor Web 应用程序的基本思想如下 - 添加方法并配置类,UseElectron(args)
如Program.CreateHostBuilder()
Startup.cs
public void Configure(IApplicationBuilder app, IWebHostEnvironment env){
//code omitted
ElectronBuilders();
}
ElectronBuilders(){
BrowserWindow mainWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
{
Resizable = false,
Width = 800,
Height = 600,
Show = false
});
mainWindow.OnReadyToShow += () =>
{
mainWindow.Show();
};
}
到目前为止,一切都很好。现在我需要一个系统托盘图标和一个用于托盘图标的弹出窗口来显示一些与应用程序相关的通知。Electron.Tray.Show()
我可以通过在ElectronBuilders()
方法中添加它来添加托盘图标。
但是,虽然所有这些工作正常,但我有点困惑,我应该在这里编写所有桌面基础逻辑吗?或者是否有适当的指导方针在哪里/如何以更好的方式安排代码结构?正如electronjs框架所描述的,有主进程和渲染器进程,就我的.Net Blazor项目而言,它在哪里?我如何管理不同的窗口生命周期(即当弹出窗口在托盘区域打开时,我需要在某些用户单击时从该窗口转到主窗口)。
任何人都可以就理解如何解决这些架构问题给出一般指导方针吗?