当前位置: 首页 > news >正文

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

前言

今天大姚给大家分享一个强大的 .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 技术驱动的富交互界面。

基本原理

官方介绍:

基本原理概括:

  • 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 或更高版本。

项目源代码

快速使用

创建一个 WinForm 应用程序

首先我们快速创建一个名为NanUIExerciseWindows 窗体应用程序:

安装 NanUI NuGet 包

安装NanUINetDimension.NanUI

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

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

Program.cs:

using NetDimension.NanUI; namespace NanUIExercise { internal static class Program { /// <summary> /// The main entry point for the application. /// </summary> [STAThread] static void Main() { var builder = NanUIApp.CreateBuilder(); builder.UseNanUIApp<MyFirstAPP>(); var app = builder.Build(); app.Run(); } } }

创建一个类继承 AppStartup 来配置应用程序:

using Microsoft.Extensions.DependencyInjection; using NetDimension.NanUI; namespace NanUIExercise { public class MyFirstAPP : AppStartup { protected override MainWindowCreationAction? UseMainWindow(MainWindowOptions opts) { // 设置应用程序的主窗体 return opts.UseMainFormium<MyWindow>(); } protected override void ProgramMain(string[] args) { // Main函数中的代码应该在这里,该函数只在主进程中运行。这样可以防止子进程运行一些不正确的初始化代码。 ApplicationConfiguration.Initialize(); } protected override void ConfigurationChromiumEmbedded(ChromiumEnvironmentBuiler cef) { // 在此处配置 Chromium Embedded Framwork } protected override void ConfigureServices(IServiceCollection services) { // 在这里配置该应用程序的服务 } } }

创建一个类实现 Formium,用于配置应用程序的主窗口:

using NetDimension.NanUI; using NetDimension.NanUI.Forms; namespace NanUIExercise { public class MyWindow : Formium { public MyWindow() { Url = "https://juejin.cn/"; } protected override FormStyle ConfigureWindowStyle(WindowStyleBuilder builder) { // 此处配置窗口的样式和属性,或留空以使用默认样式 var style = builder.UseSystemForm(); style.TitleBar = false; style.DefaultAppTitle = "My First NanUI App"; return style; } } }

运行效果查看:

项目源码地址

更多项目实用功能和特性欢迎前往项目开源地址查看👀,别忘了给项目一个Star支持💖。

  • Gitee开源地址:https://gitee.com/dotnetchina/NanUI

  • 项目文档地址:https://gitee.com/dotnetchina/NanUI/blob/master/docs/README.md

优秀项目和框架精选

该项目已收录到C#/.NET/.NET Core优秀项目和框架精选中,关注优秀项目和框架精选能让你及时了解C#、.NET和.NET Core领域的最新动态和最佳实践,提高开发工作效率和质量。坑已挖,欢迎大家踊跃提交PR推荐或自荐(让优秀的项目和框架不被埋没🤞)。

  • GitHub开源地址:https://github.com/YSGStudyHards/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

  • Gitee开源地址:https://gitee.com/ysgdaydayup/DotNetGuide/blob/main/docs/DotNet/DotNetProjectPicks.md

http://www.jsqmd.com/news/318710/

相关文章:

  • AI运维专家圆桌:新兴技术类别的诞生
  • ServiceNow与Anthropic达成多年合作协议
  • 一款基于 .NET Avalonia 开源免费、快速、跨平台的图片查看器
  • 【课程设计/毕业设计】基于微信小程序的医院设备管理及报修系统基于springboot的医院设备管理及报修小程序的设计与实现【附源码、数据库、万字文档】
  • AI工具存在严重安全脆弱性,治理刻不容缓
  • 小程序计算机毕设之基于SpringBoot+微信小程序的微信医院医疗设备管理系统管理系统基于springboot的医院设备管理及报修小程序的设计与实现(完整前后端代码+说明文档+LW,调试定制等)
  • SolarWinds修复Web Help Desk四个关键漏洞
  • 小程序毕设项目:基于springboot的医院设备管理及报修小程序的设计与实现(源码+文档,讲解、调试运行,定制等)
  • 为啥大厂 FPS 进对局不立刻清空局外缓存,而是打完再清?(大白话超长版)
  • 【毕业设计】基于springboot的医院设备管理及报修小程序的设计与实现(源码+文档+远程调试,全bao定制等)
  • 大数据架构设计:非结构化数据处理系统搭建
  • 《明日方舟:终末地》:披着二游皮的基建模拟器
  • Redis 与大数据 NoSQL 数据库的融合应用
  • “抖音崩了”冲上热搜,无法正常搜索,刷视频功能未受影响
  • 提示工程架构师:如何用数据驱动提示优化,提升用户满意度?
  • weixin196运动健康小程序SpringBoot(源码)_kaic
  • 【计算机毕业设计案例】基于springboot医院固定资产设备维修报修系统基于springboot的医院设备管理及报修小程序的设计与实现(程序+文档+讲解+定制)
  • 大数据时序分析,这些要点你掌握了吗?
  • 掌握大数据领域Lambda架构的性能测试方法
  • AI大模型应用开发从理论再到实践:AI大模型应用开发学习路线,提升核心竞争力,非常详细建议收藏
  • YOLO26涨点改进 | 全网独家创新、细节涨点改进篇 | SCI 一区 2025 | 引入RHDWT残差离散小波变换,下采样创新改进,助力目标检测、图像分类、实例分割有效涨点
  • 炫酷恒等变换魔术
  • CF1366F Jog Around The Graph
  • Java计算机毕设之基于springboot旅游景区门票订购,行程规划,酒店入住管理系统基于springboot的智慧旅游系统(完整前后端代码+说明文档+LW,调试定制等)
  • 《云岚到家》第一章个人总结 - 实践
  • 华为OD技术面真题 - 数据库MySQL - 3
  • AI时代必备!转行AI产品经理全攻略:小白到高薪的完整路径
  • 商业应用(2)办公用品领取管理系统—东方仙盟练气期
  • 大数据领域数据产品的智慧互联网应用创新探索与实践
  • 基于SpringBoot+Vue的家庭食谱管理系统的设计与实现