跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客GitHub 精选镜像工具UI配色美学隐私政策关于联系
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
C#AI大前端算法

6 年自研纯 C# UI 引擎 XchyUI,内核小于 200KB 支持跨平台

XchyUI 是一款历时 6 年全链路自研的纯 C# 跨平台 UI 引擎。采用 GLFW 与 SkiaSharp 构建渲染底座,结合函数式组合编程思想,实现内核小于 200KB 的轻量级架构。支持 .NET8 AOT 发布,具备百万级数据 60fps 渲染能力,通过脏矩形刷新与对象池机制优化性能。

王初壹发布于 2026/4/7更新于 2026/5/2214 浏览
6 年自研纯 C# UI 引擎 XchyUI,内核小于 200KB 支持跨平台

6 年磨一剑!纯 C# 全自研轻量 UI 引擎|内核 < 200KB + .NET8 AOT 跨平台 + 百万数据 60fps

这是我利用 6 年业余时间,历经无数次推翻重构,全链路自研的纯 C# 用户态跨平台 UI 引擎。

引擎的演进之路:从 WinForms + GDI 起步 → 多次架构重构 → 最终定型 GLFW + SkiaSharp,深度融合业界三大核心思想:

  • Android View 绘制流程
  • Jetpack Compose 函数式组合编程
  • Flutter 渲染优化理念

当前 PC 客户端开发,大多基于以下技术体系: • .NET 官方框架:WinForms / WPF / WinUI / .NET MAUI • 开源跨平台方案:Avalonia • Web 套壳技术:Electron / Tauri • C++ 原生框架:Qt

绝大多数开发者与企业,都选择在这些成熟框架之上做二次封装、组件扩展,以此快速实现业务需求。但真正愿意从源头开始,全链路自研一整套 UI 引擎的开发者少之又少。

而我的这套引擎,正是从 0 到 1 完全自研:渲染管线、视图布局系统、动画调度、虚拟滚动、事件分发、主题体系、状态管理,全部自主实现,形成全链路闭环。可满足 90% 以上的桌面客户端 UI 需求,复杂绘图可直接对接底层 Skia 渲染,生成绘制指令并提交 GPU 执行。

框架设计追求极简与高效: • 单线程架构 + 对象复用机制,大幅降低 GC 压力 • 元素结构无冗余设计,内存占用极低 • 函数式组合编程 + 状态驱动界面重组 • 组件树一次声明、多处复用 • 业务逻辑与 UI 结构高度内聚,不分散 • 思想贴近 React / Flutter / Jetpack Compose,现代前端/移动端开发者可快速上手

与传统 XML、重量级框架不同,本引擎坚持小而精的设计理念:只提供最基础的原子组件,所有复杂组件(DataGrid、TreeView、图表、卡片等)均通过基础组件积木式组合实现。框架不提供冗余、不内置臃肿组件,保持最轻量、最灵活、最可定制的核心优势。

全程无黑盒、无深度封装、无 Web 套壳、无浏览器内核,回归原生渲染本质。

引擎开发历程

从最初基于 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);

        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);
});

这段代码展示了状态绑定与动画绑定的基本用法。StateValueOf 用于创建响应式状态,当值变化时自动触发 UI 更新。AnimateFloatOf 则演示了如何定义一个循环动画,无需手动维护 Timer,引擎内部会处理帧率与插值。

运行环境要求

  • Windows 需 Win10 及以上(因 .NET8 AOT 最低支持 Win10)
  • Ubuntu 20.04 / 22.04 已验证
  • macOS 理论 100% 支持

关于底层技术的壁垒

AI 可以快速生成页面业务代码,但无法自研底层引擎。渲染管线、布局算法、虚拟滚动、脏矩形刷新、动画调度、内存池、深度性能优化……这些底层架构与多年沉淀的核心技术,才是真正壁垒,只会越来越稀缺。

后续规划

本项目为 6 年全自研成果,首次公开分享。未来将逐步开放:

  • 使用文档 & 开发教程
  • 函数式 UI 编写指南
  • 底层技术原理讲解(布局、渲染、动画、虚拟滚动)
  • 架构设计与性能优化细节
  • 开源 / 社区共建计划

期待社区反馈与交流。

目录

  1. 6 年磨一剑!纯 C# 全自研轻量 UI 引擎|内核 < 200KB + .NET8 AOT 跨平台 + 百万数据 60fps
  2. 引擎开发历程
  3. 引擎核心亮点
  4. 基础组件 & 扩展能力
  5. 已实现 Demo
  6. 极简示例代码
  7. 运行环境要求
  8. 关于底层技术的壁垒
  9. 后续规划
  • 💰 8折买阿里云服务器限时8折了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 🤖 一键搭建Deepseek满血版了解详情
  • 一键打造专属AI 智能体了解详情
极客日志微信公众号二维码

微信扫一扫,关注极客日志

微信公众号「极客日志V2」,在微信中扫描左侧二维码关注。展示文案:极客日志V2 zeeklog

更多推荐文章

查看全部
  • Python 基础入门:数据存储与运算
  • AI 论文工具隐私风险分析与安全使用指南
  • Python PyQt6 实战:从零构建简易记事本
  • 从Python到Java:多语言SDK开发指南
  • 云原生容器技术入门:Docker 与 K8s 基本原理及用途
  • 易语言子程序高级应用:递归、回调与参数设计实战
  • 逻辑回归详解:原理、推导、实现与实战
  • JavaScript 金额计算精度丢失与分摊方案
  • 大规模语言模型与智能代理:理论及实践应用
  • 视觉 - 语言建模综述:核心范式与评估实践
  • 华为 OD 机试真题:采购订单生成规则解析
  • Android 免 Root 自动抢红包工具 AutoRobRedPackage 使用指南
  • HarmonyOS 6 相机 C++ API 核心能力详解
  • FastGithub 部署指南:智能 DNS 解析优化 GitHub 访问
  • MySQL 表操作实战:创建、修改与删除全解析
  • Easylogging++ C++ 日志库使用指南
  • DeepSeek 模型系列演进与各版本核心特性解析
  • STL 容器适配器:stack 与 queue 底层模拟及算法实践
  • 华为 OD 机试:黑白棋移动范围计算
  • DeepSeek 各版本演进与核心能力对比

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如AES、TripleDES、Rabbit或RC4)加密和解密文本明文。 在线工具,加密/解密文本在线工具,online

  • RSA密钥对生成器

    生成新的随机RSA私钥和公钥pem证书。 在线工具,RSA密钥对生成器在线工具,online

  • Mermaid 预览与可视化编辑

    基于 Mermaid.js 实时预览流程图、时序图等图表,支持源码编辑与即时渲染。 在线工具,Mermaid 预览与可视化编辑在线工具,online

  • 随机西班牙地址生成器

    随机生成西班牙地址(支持马德里、加泰罗尼亚、安达卢西亚、瓦伦西亚筛选),支持数量快捷选择、显示全部与下载。 在线工具,随机西班牙地址生成器在线工具,online

  • Gemini 图片去水印

    基于开源反向 Alpha 混合算法去除 Gemini/Nano Banana 图片水印,支持批量处理与下载。 在线工具,Gemini 图片去水印在线工具,online

  • Base64 字符串编码/解码

    将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online