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

纯 C# 自研轻量 UI 引擎 XchyUI:内核<200KB,支持.NET8 AOT 跨平台

一款基于纯 C# 开发的轻量级跨平台 UI 引擎,采用 GLFW 与 SkiaSharp 构建渲染底座,融合函数式编程思想。内核体积小于 200KB,支持.NET8 AOT 发布,具备百万数据 60fps 虚拟滚动能力。架构设计摒弃 Web 套壳,专注于原生渲染性能与状态驱动界面重组,适用于对性能有较高要求的桌面客户端开发场景。涉及渲染管线、布局算法、动画调度等底层核心技术。

内存管理发布于 2026/3/30更新于 2026/10/886 浏览
纯 C# 自研轻量 UI 引擎 XchyUI:内核<200KB,支持.NET8 AOT 跨平台

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

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

技术选型与演进

从最初基于 WinForms + GDI 摸索渲染与布局,到中间数次因性能、架构不足彻底推翻重构,最终选择 GLFW + SkiaSharp 构建跨平台渲染底座。这一过程深度融合了业界三大核心思想:

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

当前 PC 客户端开发多基于 .NET 官方框架(WinForms/WPF/MAUI)、开源跨平台方案(Avalonia)、Web 套壳技术(Electron/Tauri)或 C++ 原生框架(Qt)。大多数开发者选择在这些成熟框架之上做二次封装。而本引擎坚持从 0 到 1 完全自研,涵盖渲染管线、视图布局系统、动画调度、虚拟滚动、事件分发、主题体系及状态管理,形成全链路闭环。

核心设计理念

框架追求极简与高效,满足 90% 以上的桌面客户端 UI 需求。复杂绘图可直接对接底层 Skia 渲染,生成绘制指令并提交 GPU 执行。

  • 单线程架构 + 对象复用机制:大幅降低 GC 压力。
  • 元素结构无冗余设计:内存占用极低。
  • 函数式组合编程 + 状态驱动:组件树一次声明、多处复用。
  • 业务逻辑与 UI 结构高度内聚:不分散。
  • 小而精:只提供最基础的原子组件,所有复杂组件(DataGrid、TreeView、图表等)均通过基础组件积木式组合实现。

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

引擎核心亮点

  • 纯 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、图表等,均可通过基础组件积木式组合实现,无需重写底层。

运行效果展示

演示效果

演示效果

演示效果

演示效果

代码示例

以下是一个包含响应式状态绑定与无 Timer 循环动画的极简示例:

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

演示效果

关于底层壁垒

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

后续计划

本项目为 6 年全自研成果,首次公开分享。后续计划逐步开放使用文档、开发教程、函数式 UI 编写指南、底层技术原理讲解(布局、渲染、动画、虚拟滚动)以及架构设计与性能优化细节。

目录

  1. 6 年磨一剑!纯 C# 全自研轻量 UI 引擎|内核 < 200KB + .NET8 AOT 跨平台 + 百万数据 60fps
  2. 技术选型与演进
  3. 核心设计理念
  4. 引擎核心亮点
  5. 基础组件 & 扩展能力
  6. 运行效果展示
  7. 代码示例
  8. 关于底层壁垒
  9. 后续计划

更多推荐文章

查看全部
  • Flutter 高性能原理浅析
  • 前端高频面试题:TypeScript 核心概念与实战解析
  • 基于 FPGA 的千兆以太网接口设计与实现
  • C++ 模板编程基础:泛型编程入门与实践
  • Python 爬虫实战:爬取地图 POI 数据(商户/地址/电话)
  • Claude Code 本地化部署教程:接入 Ollama 实现离线开发
  • 如何将 Android 项目上传至 GitHub
  • DeerFlow 2.0 开源:超级智能体架构详解
  • CentOS 系统安装 Docker 完整指南
  • 2026 AI 编码工具对比:Claude Code、Cursor 与 GitHub Copilot 选型指南
  • 基于 Java Swing 的个人所得税计算模拟器实战
  • Stable Diffusion WebUI 核心文件夹结构与模型实战指南
  • 本地部署 AI 大模型实战指南:Ollama 与通义千问集成
  • Spring AI MCP Server 集成与源码解析
  • Java 结合 AI 能力混合编程落地实施方案
  • Ollama Windows 安装与使用指南:本地运行 Llama、DeepSeek 等大模型
  • 大数据开发工程师转型大模型应用开发指南与路径规划
  • LightRAG 架构深度解析:基于图的检索增强生成系统
  • 金融场景实践:用 GLM-4.6V-Flash-WEB 分析报表截图
  • 找羊开源加热台硬件与固件设计解析

相关免费在线工具

  • 加密/解密文本

    使用加密算法(如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