Electron.net入门

本文介绍了如何使用Electron.Net创建跨平台桌面应用。主要内容包括安装必要的开发环境、配置项目以支持Electron.Net API,以及如何启动应用。通过具体代码示例展示了如何处理窗口创建、异常情况等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Electron.Net 入门

安装环境

操作流程

  1. 新建一个工程
    这里写图片描述
  2. 选择.net core 这里写图片描述
  3. 添加electron.net api的引用这里写图片描述
  4. 打开Startup.cs修改代码

        public Startup(IConfiguration configuration)
        {
            Configuration = configuration;
        }

        public IConfiguration Configuration { get; }

        // This method gets called by the runtime. Use this method to add services to the container.
        public void ConfigureServices(IServiceCollection services)
        {
            services.AddMvc();
        }

        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
                app.UseBrowserLink();
            }
            else
            {
                app.UseExceptionHandler("/Home/Error");
            }

            app.UseStaticFiles();

            app.UseMvc(routes =>
            {
                routes.MapRoute(
                    name: "default",
                    template: "{controller=Home}/{action=Index}/{id?}");
            });
            if (HybridSupport.IsElectronActive)
            {
                // Open the Electron-Window here
                Task.Run(new Action(() =>
                {
                    ElectronBootstrap();
                }));
            }

        }

        public async void ElectronBootstrap()
        {
            //var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
            //{
            //    Width = 1152,
            //    Height = 864,
            //    Frame = false,
            //    Show = true,
            //    Transparent = false
            //}, $"http://localhost:{ BridgeSettings.WebPort }/test.html");
            var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
            {
                Width = 1152,
                Height = 864,
                Frame = false,
                Show = true,
                Transparent = false
            });
            browserWindow.OnReadyToShow += () => browserWindow.Show();
            browserWindow.SetTitle("Electron.NET API Demos");
            browserWindow.WebContents.OnCrashed += async (killed) =>
            {
                var options = new MessageBoxOptions("This process has crashed.")
                {
                    Type = MessageBoxType.info,
                    Title = "Renderer Process Crashed",
                    Buttons = new string[] { "Reload", "Close" }
                };
                var result = await Electron.Dialog.ShowMessageBoxAsync(options);

                if (result.Response == 0)
                {
                    browserWindow.Reload();
                }
                else
                {
                    browserWindow.Close();
                }
                //var browserWindow = await Electron.WindowManager.CreateWindowAsync(new BrowserWindowOptions
                //{
                //    Width = 1152,
                //    Height = 864,
                //    Show = false
                //});

                //browserWindow.OnReadyToShow += () => browserWindow.Show();
                //browserWindow.SetTitle("Electron.NET API Demos");
            };
            browserWindow.OnUnresponsive += async () => {
                var options = new MessageBoxOptions("This process is hanging.")
                {
                    Type = MessageBoxType.info,
                    Title = "Renderer Process Hanging",
                    Buttons = new string[] { "Reload", "Close" }
                };
                var result = await Electron.Dialog.ShowMessageBoxAsync(options);

                if (result.Response == 0)
                {
                    browserWindow.Reload();
                }
                else
                {
                    browserWindow.Close();
                }
            };
        }
  1. program.cs也添加如下的代码

 public static IWebHost BuildWebHost(string[] args)
        {
            return WebHost.CreateDefaultBuilder(args)
                .UseElectron(args)
                .UseStartup<Startup>()
                .Build();
        }  
  1. 找到csproj文件添加下图中的一代码
    这里写图片描述
  2. 最后在工程文件夹下面执行
dotnet restore
dotnet electron init 
dotnet electronize start

8 确定安装了electron-package
安装代码

tip: 可以考虑淘宝镜像
结果如下图
这里写图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值