Miko 的诞生契机

2023 年 2 月至 4 月期间,作者所在公司需要将一款基于 WinForms 开发的小工具移植到国内信创系统,为此对比了多款 C# 跨平台 UI 框架 —— 其中 MAUI 不支持 Linux,而 Avalonia、Uno 与 CPF 均支持 Linux。

综合实际需求与对比结果,最终选择了小红帽开发的 CPF,并购入其付费版设计器。做出这一选择,一方面是因作者曾使用过小红帽的 CSKin 框架,对其产品有一定了解;另一方面,当时 CPF 的付费版设计器支持控件拖拽功能,能相对快速的完成小工具界面搭建。

完成小工具移植后,作者发现当时主流的 C# 跨平台 UI 框架多采用类似 WPF 的 XAML 界面设计模式。由此萌生了一个想法:为何不开发一款能沿用 WinForms 设计器进行界面设计的跨平台 UI 框架?Miko 项目便由此诞生。其命名 “Miko”(意为女巫),寓意借助 “女巫的魔法” 让 WinForms 程序能跨设备运行在各类平台上。Miko的灵感来自于CPF,部分效果绘制的地方参考了CPF的实现方式(SkiaPath,GDIPlusPath),在此非常感谢小红帽对CPF的开源!(拿到代码的小伙伴都能看到Miko代码中对参考了CPF代码的都进行了标注与原出处指向链接)

2023 年 6 月,Miko 首个测试版本可用,已能在 Windows、Linux、macOS 系统上展示带自定义边框装饰的窗体,并在窗体内绘制 Button 与 Label 控件,点击 Button 可实现 Label 文字变更。​

2023 年 10 月,第二个测试版本可用。自此开始支持使用 VisualStudio 自带的 WinForms 设计器设计 Miko 窗体及自定义控件,同时解决了设计器异常挂起、报错,以及资源编辑器、资源文件加载、颜色选择器、字体选择器等相关问题,确保 100% 原生 WinForms 设计器体验。此外,对 Graphics 对象方法与 WinForms 的 Graphics 方法进行了兼容,便于开发者迁移 WinForms 自定义控件;新增 GPU 后端,采用现代 GPU 后端可获得更优渲染帧率。​

2024 年 2 月,第三个测试版本可用,新增对移动平台和 Web 平台的实验性支持,目前在这些平台已能渲染设计器设计的界面并触发控件点击事件;更新 TextView,支持字体自动回退。因个人精力有限,决定暂时弃用 GDI 后端,将 Windows 支持版本确定为 Windows 10 及以上,后续若有相关需求可能重启 GDI 后端。​

2024 年 2 月至 2025 年 4 月,受工作时间调整影响,Miko 的开发进度有所放缓,但核心工作未中断,最终顺利完成了所有功能性验证工作。​

2025 年 5 月,项目进入标准化阶段:正式移除所有实验性控件,同时全面启动对 WinForms 提供的标准控件的移植工作。

2025 年 12 月至 2026 年 2 月,开源,将代码提交到公开存储库(如果标准控件移植工作提前完成则会提前开源)