LVGLSharp.Forms 是一个跨平台的 WinForms API 兼容层,以 LVGL 作为底层渲染引擎。目标是实现所见即所得——在 Visual Studio Windows Forms 设计器中设计的界面,可以在 Linux(arm / arm64 / x64)等嵌入式平台上以高度一致的效果运行。
⚠️ 项目目前处于试验阶段,尚不可用于生产环境。
✨ 特性
-
🖥️ WinForms API 兼容:使用与 System.Windows.Forms 高度相似的 API,轻松迁移现有代码。
-
🔤 LVGL 全 API 互操作:基于 ClangSharpPInvokeGenerator 自动生成的 P/Invoke 绑定,覆盖 LVGL 全部 C API。
-
🚀 NativeAOT 支持:支持发布为无依赖的原生可执行文件(已验证 win-x64 / linux-arm)。
-
🌍 跨平台:支持 Windows(x86 / x64 / arm64)、Linux(x64 / arm / arm64)。
-
🧩 内置常用控件:Button、Label、TextBox、CheckBox、RadioButton、ComboBox、ListBox、ProgressBar、TrackBar、NumericUpDown、PictureBox、Panel、GroupBox、FlowLayoutPanel、TableLayoutPanel、RichTextBox 等。
-
🎨 自定义绘图类型:提供 LVGLSharp.Drawing 命名空间下的 Size、Point、Color 等类型,无需依赖 System.Drawing,天然跨平台。
新增 / Added
-
WinForms API 兼容层核心框架,基于 LVGL 渲染引擎。
-
支持控件:Button、Label、TextBox、CheckBox、RadioButton、ComboBox、ListBox、ProgressBar、TrackBar、NumericUpDown、PictureBox、Panel、GroupBox、FlowLayoutPanel、TableLayoutPanel、RichTextBox。
-
LVGLSharp.Darwing 命名空间:跨平台绘图类型 Size、Point、Color 等,不依赖 System.Drawing。
-
NativeAOT 支持(win-x64、linux-arm、linux-arm64、linux-x64)。
-
基于 ClangSharpPInvokeGenerator 自动生成的 LVGL 全量 P/Invoke 绑定(LVGLSharp.Interop)。
-
平台原生库分发包 LVGLSharp.Native,支持 win-x64、win-x86、win-arm64、linux-x64、linux-arm、linux-arm64。
-
LVGL GCHandle 事件桥接机制:通过 [UnmanagedCallersOnly] 静态回调将 LVGL 事件路由至托管控件事件。
-
Application.Run(Form) 生命周期支持。
-
WinFormsDemo 演示项目。
-
项目初始化,基于 imxcstar/LVGLSharp 构建底层 LVGL .NET 封装。
-
引入 LVGL 9.3 作为 git submodule。
-
基础 Control 与 Form 类实现,支持 Controls 层级管理及 LVGL 对象创建。
-
初步验证 NativeAOT 发布流程(win-x64、linux-arm)。
致谢 / Acknowledgements
源码地址: https://gitee.com/IoTSharp/LVGLSharp.Forms