找回密码
 立即注册
首页 业界区 业界 使用 NanUI 快速创建具有现代用户界面的 WinForm 应用程 ...

使用 NanUI 快速创建具有现代用户界面的 WinForm 应用程序

楞粳 昨天 23:50
前言

今天大姚给大家分享一个强大的 .NET 开源框架,它利用 Web 技术(HTML5、CSS3、JavaScript)为 WinForm 应用程序构建现代化的用户界面:NanUI。
如果你正在寻找一个用于创建具有现代用户界面的 WinForm 应用程序的框架,NanUI 是一个不错的选择。
项目介绍

NanUI 是一个基于 .NET 平台的开源(MIT License)框架,旨在帮助开发者使用 HTML5、CSS3 和 JavaScript 构建具有现代感的 WinForm 应用程序用户界面。它底层依托于 Xilium.CefGlue 这是 Chromium Embedded Framework(CEF)在 .NET 环境下的官方绑定实现,通过嵌入完整的 Chromium 渲染引擎,使 WinForm 应用能够呈现 Web 技术驱动的富交互界面。
基本原理

官方介绍:
1.png

基本原理概括:

  • Chromium Embedded Framework (CEF) 是一个开源项目,一个用于将基于 Chromium 的浏览器嵌入其他应用程序的简单框架。
  • 它提供稳定的 C/C++ API,支持多进程架构(Browser 进程 + Renderer/GPU 等子进程),具备完整的 HTML5 渲染、JavaScript 执行、网络请求、安全沙箱等能力。
  • NanUI 并未直接调用 CEF 的 C 接口,而是基于 Xilium.CefGlue 这是一个高质量的 .NET 封装库,将 CEF 的 C++ API 转换为 C# 可调用的托管接口。
环境要求

开发环境


  • Visual Studio 2019 或更高版本。
  • NET Framework 4.6.2 或更高版本 / .NET 6.0 或更高版本。
部署环境


  • .NET Framework 4.6.2 或更高版本。
  • .NET 6.0 需要 Windows 7 Service Pack 1 或更高版本。
  • .NET 7.0/8.0/9.0 需要 Windows 10 或 Windows 11。
  • Microsoft Windows 7 Service Pack 1 或更高版本。
项目源代码

2.png

快速使用

创建一个 WinForm 应用程序

首先我们快速创建一个名为NanUIExercise Windows 窗体应用程序:
3.png

4.png

5.png

安装 NanUI NuGet 包

安装 NanUI 包 NetDimension.NanUI :
6.png

 安装 NanUI 所依赖的 Chromium Embedded Framework 依赖包 NetDimension.NanUI.Runtime:
7.png

 
创建一个基本的 NanUI 应用程序

Program.cs:
  1. using NetDimension.NanUI;

  2. namespace NanUIExercise
  3. {
  4.     internal static class Program
  5.     {
  6.         /// <summary>
  7.         ///  The main entry point for the application.
  8.         /// </summary>
  9.         [STAThread]
  10.         static void Main()
  11.         {
  12.             var builder = NanUIApp.CreateBuilder();

  13.             builder.UseNanUIApp<MyFirstAPP>();

  14.             var app = builder.Build();

  15.             app.Run();
  16.         }
  17.     }
  18. }
复制代码
创建一个类继承 AppStartup 来配置应用程序:
  1. using Microsoft.Extensions.DependencyInjection;
  2. using NetDimension.NanUI;

  3. namespace NanUIExercise
  4. {
  5.     public class MyFirstAPP : AppStartup
  6.     {
  7.         protected override MainWindowCreationAction? UseMainWindow(MainWindowOptions opts)
  8.         {
  9.             // 设置应用程序的主窗体
  10.             return opts.UseMainFormium<MyWindow>();
  11.         }

  12.         protected override void ProgramMain(string[] args)
  13.         {
  14.             // Main函数中的代码应该在这里,该函数只在主进程中运行。这样可以防止子进程运行一些不正确的初始化代码。
  15.             ApplicationConfiguration.Initialize();
  16.         }

  17.         protected override void ConfigurationChromiumEmbedded(ChromiumEnvironmentBuiler cef)
  18.         {
  19.             // 在此处配置 Chromium Embedded Framwork
  20.         }

  21.         protected override void ConfigureServices(IServiceCollection services)
  22.         {
  23.             // 在这里配置该应用程序的服务
  24.         }
  25.     }
  26. }
复制代码
创建一个类实现 Formium,用于配置应用程序的主窗口:
  1. using NetDimension.NanUI;
  2. using NetDimension.NanUI.Forms;

  3. namespace NanUIExercise
  4. {
  5.     public class MyWindow : Formium
  6.     {
  7.         public MyWindow()
  8.         {
  9.             Url = "https://juejin.cn/";
  10.         }

  11.         protected override FormStyle ConfigureWindowStyle(WindowStyleBuilder builder)
  12.         {
  13.             // 此处配置窗口的样式和属性,或留空以使用默认样式

  14.             var style = builder.UseSystemForm();

  15.             style.TitleBar = false;

  16.             style.DefaultAppTitle = "My First NanUI App";

  17.             return style;
  18.         }
  19.     }
  20. }
复制代码
运行效果查看:
8.png

9.png

项目源码地址


更多项目实用功能和特性欢迎前往项目开源地址查看
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!

相关推荐

您需要登录后才可以回帖 登录 | 立即注册