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

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

纯 C# 自研轻量 UI 引擎 XchyUI,内核小于 200KB,基于 GLFW 与 SkiaSharp 实现跨平台渲染。采用函数式组合编程与状态驱动模式,融合 Android View、Jetpack Compose 及 Flutter 设计理念。支持 .NET8 AOT 原生发布,具备百万级数据 60fps 虚拟滚动能力,通过脏矩形刷新与对象池复用优化性能。相比传统 XML 或 Web 套壳方案,该引擎提供更高性能与更低内存占用,适合对性能敏感的桌面客户端开发场景。

林间仙子发布于 2026/3/25更新于 2026/7/1834 浏览
6 年自研纯 C# 轻量 UI 引擎 XchyUI,内核<200KB 支持跨平台

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

当前 PC 客户端开发多基于 WinForms、WPF、Electron 或 Qt 等成熟框架。但真正愿意从源头开始,全链路自研一套 UI 引擎的开发者少之又少。这套引擎正是从 0 到 1 完全自研:渲染管线、视图布局系统、动画调度、虚拟滚动、事件分发、主题体系、状态管理,全部自主实现,形成全链路闭环。可满足 90% 以上的桌面客户端 UI 需求,复杂绘图可直接对接底层 Skia 渲染,生成绘制指令并提交 GPU 执行。

架构演进与核心思想

引擎经历了从 WinForms + GDI 起步,到多次因性能、架构不足彻底推翻重构,最终选择 GLFW + SkiaSharp 构建跨平台渲染底座的过程。融合业界三大核心思想:Android View 绘制流程、Jetpack Compose 函数式组合编程、Flutter 渲染优化理念。

设计追求极简与高效:

  • 单线程架构 + 对象复用机制,大幅降低 GC 压力
  • 元素结构无冗余设计,内存占用极低
  • 函数式组合编程 + 状态驱动界面重组
  • 组件树一次声明、多处复用
  • 业务逻辑与 UI 结构高度内聚

与传统 XML、重量级框架不同,本引擎坚持小而精的设计理念:只提供最基础的原子组件,所有复杂组件(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、图表等,均可通过基础组件积木式组合实现,无需重写底层。

代码示例

采用函数式组合 API,通过状态驱动界面重组。以下是一个包含响应式计数器和旋转动画的示例,展示了如何绑定状态和定义动画参数:

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

性能与部署

支持 .NET8 AOT 原生编译,体积极小。引擎自身 <200KB,整体 exe 体积主要来自 .NET 运行时及依赖库。运行要求 Windows 10 及以上或 Ubuntu 20.04/22.04。首次启动涉及磁盘缓存和 GL 上下文初始化,属原生渲染程序正常现象,二次启动秒开。

技术壁垒与展望

AI 可以快速生成页面业务代码,但无法自研底层引擎。渲染管线、布局算法、虚拟滚动、脏矩形刷新、动画调度、内存池、深度性能优化……这些底层架构与多年沉淀的核心技术,才是真正壁垒。后续计划开放使用文档、开发教程及底层技术原理讲解,推动社区共建。

目录

  1. 6 年磨一剑!纯 C# 全自研轻量 UI 引擎|内核 < 200KB + .NET8 AOT 跨平台 + 百万数据 60fps
  2. 架构演进与核心思想
  3. 核心亮点
  4. 基础组件与扩展
  5. 代码示例
  6. 性能与部署
  7. 技术壁垒与展望
  • 免费图片AI生成工具免费生成了解详情
  • Magick API 一键接入全球大模型注册送1000万token查看
  • 免费图片视频在线生成30秒,将你的创意变成现实开始设计
  • X/Twitter免费视频下载器免登陆无限额度免费视频解析下载了解详情
  • 100+免费在线小游戏爽一把
极客日志微信公众号二维码

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

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

更多推荐文章

查看全部
  • Flutter 组件 tavily_dart 在鸿蒙平台的适配与 AI 搜索集成实战
  • Flutter 三方库 webkit_inspection_protocol 在鸿蒙系统的适配指南
  • CycleGAN 详解与实现:无配对图像转换技术
  • Java 无锁队列 Disruptor 核心原理分析
  • VS Code 中常用的 Python 代码格式化工具
  • 程序员转行方向推荐:数据分析师、AI 大模型工程师、产品经理与云计算工程师
  • 基于 Leaflet 和天地图的长沙市免费运动场所 WebGIS 可视化
  • eBay 商品数据采集实战:Python 调用网页抓取 API 接入方案
  • SpringBoot 校园讲座管理系统设计与实现
  • EvoCUA 刷新开源 SOTA:会操作电脑且持续进化的智能体
  • 使用 Ollama 本地运行 Llama-3.2-3B 模型指南
  • 码农与软件工程师的核心区别及能力要求
  • OpenAI 发布 GPT-4o 模型,实现多模态实时交互
  • 位图、布隆过滤器与哈希切分的高效数据处理技术
  • 昇腾 NPU 部署 Llama 2 模型的性能测试与优化实践
  • 默认安全治理实践:水平越权检测与前端安全防控
  • 医疗领域自然语言处理应用与实战
  • Meta Llama 3 发布:性能媲美 GPT-4 的开源大模型详解
  • Python 为何在数据分析领域广受欢迎?
  • LLM 面试真题与答案详解:基础、微调及 LangChain 篇

相关免费在线工具

  • 加密/解密文本

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