6 年磨一剑!纯 C# 全自研轻量 UI 引擎|内核 < 200KB + .NET8 AOT 跨平台 + 百万数据 60fps
6 年磨一剑!纯 C# 全自研轻量 UI 引擎|内核 < 200KB + .NET8 AOT 跨平台 + 百万数据 60fps
大家好,这是我利用6 年业余时间,历经无数次推翻重构,全链路自研的纯 C# 用户态跨平台 UI 引擎,今天第一次公开分享。
引擎的演进之路:从 WinForms + GDI 起步 → 多次架构重构 → 最终定型 GLFW + SkiaSharp深度融合业界三大核心思想:
- Android View 绘制流程
- Jetpack Compose 函数式组合编程
- Flutter 渲染优化理念
全程无黑盒、无深度封装、极度透明,真正为轻量、高性能、原生 AOT 跨平台而生。
引擎开发历程(真实走心)
从最初基于 WinForms + GDI 摸索渲染与布局,到中间数次因性能、架构、扩展性不足彻底推翻重构,再到最终选择 GLFW + SkiaSharp 构建跨平台渲染底座,6 年间不断打磨架构、优化渲染、精简内核。
最终沉淀出这套:极轻量、高性能、跨平台、纯 C# 用户态的 UI 引擎。每一行核心代码都经过反复推敲与验证。
引擎核心亮点
- 纯 C# 用户态实现,Release 核心 DLL < 200KB
- 函数组合式 API + 状态对象驱动界面重组
- 自研无 Timer 高性能动画系统
- 完整 View 布局系统:Row/Column/Flow/ 虚拟滚动容器
- 百万级数据列表轻松稳定 60fps+
- 自研渲染管线 + 脏矩形局部刷新
- 底层对象池复用:SKPaint/SKFont/SKBitmap 全复用
- 窗口对接 Silk.NET.GLFW,渲染基于 SkiaSharp
- 支持 .NET8 AOT 原生发布
- 已验证:Windows / Ubuntu,macOS 理论 100% 支持
- 插拔式架构,可快速对接其他平台与渲染器
基础组件 & 扩展能力
内置基础组件:Text/Input/Icon/Row/Column/Flow/LazyRow/LazyColumn/LazyGrid/PopupCard
复杂组件如 DataGrid、TreeView、图表等,均可通过基础组件积木式组合实现,无需重写底层。
已实现 Demo
- 百万数据高性能虚拟滚动列表
- 仿微信 PC 端主界面
- 饼图 / 柱状图 / 折线图 / 仪表盘
极简示例代码
ContentView(() => {
// 垂直布局
Column(() => {
// 响应式状态
var counterNum = StateValueOf(0);
Text()
.H3()
.Binding(counterNum, (builder, num) => {
builder.TextValue($"计数器:{num}");
}, true);
// 无Timer循环动画
var visibleState = StateValueOf(true);
var animateValue = AnimateFloatOf(visibleState, animate => {
animate.Duration = 800;
animate.Times = int.MaxValue;
animate.Delay = 200;
animate.Interpolator = XAnimationInterpolator.Uniform;
});
Icon(SvgResources.CircleProgress)
.Size(32)
.Binding(animateValue, (builder, value) =>
builder.Rotate(value * 360)
);
// 点击交互
Text("点击增加计数")
.PrimaryButton()
.Click(() => counterNum.Value++);
})
.Size(WRAP)
.Space(10);
});
🚀 Demo 运行包(AOT 原生编译,开箱即用)
-
提供 AOT 编译原生 exe,解压直接运行
-[ ](通过网盘分享的文件:numdemo.zip
链接: https://pan.baidu.com/s/1aEIAR4YdS2Blt9oVgPAjHA 提取码: hg4d) -
体积:exe + 非托管库共 24MB引擎自身 <200KB,体积来自 .NET 运行时 + Skia + GLFW
-
运行系统要求:
- Windows 需 Win10 及以上(因 .NET8 AOT 最低支持 Win10)
- Ubuntu 20.04 / 22.04 已验证
-
首次启动稍慢:磁盘缓存 + GL 上下文 + Skia 初始化二次启动秒开,属原生渲染程序正常现象
关于 AI 是否会替代
AI 可以快速生成页面业务代码,但无法自研底层引擎。渲染管线、布局算法、虚拟滚动、脏矩形刷新、动画调度、内存池、深度性能优化……这些底层架构与多年沉淀的核心技术,才是真正壁垒,只会越来越稀缺。
后续计划
本项目为 6 年全自研成果,首次公开分享。如果关注和感兴趣的朋友较多,我会逐步开放:
- 使用文档 & 开发教程
- 函数式 UI 编写指南
- 底层技术原理讲解(布局、渲染、动画、虚拟滚动)
- 架构设计与性能优化细节
- 开源 / 社区共建计划
欢迎交流,感谢支持!

经过6年业余时间的持续研发,一款纯C#自研的轻量级跨平台UI引擎正式亮相。该引擎融合Android、Jetpack Compose和Flutter三大核心思想,采用GLFW+SkiaSharp技术栈,内核DLL小于200KB。具备函数式组合API、无Timer动画系统、脏矩形刷新等特性,支持百万级数据60fps流畅滚动和.NET8 AOT原生发布。已实现微信界面、图表等Demo,并展示了极简的响应式编程示例。引擎强调底层架构的核心价值,未来计划逐步开放文档和开源计划。
浙公网安备 33010602011771号