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

基本原理概括:

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



安装 NanUI 包 NetDimension.NanUI :

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

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支持💖。