开源免费 · LGPL-2.1 · 活跃开发中

用 WinForms 的设计方式
构建跨平台应用

Mufiy 是一个开源的 C# 跨平台 UI 框架。用你熟悉的原生 WinForms 设计器 + C# 编写界面,从单个共享代码库,一次开发即可部署到 Windows、Linux、macOS、Android、iOS 与 WebAssembly。

零学习成本 支持 Native AOT GPU 硬件加速
Program.cs
using Mufiy;
using Mufiy.Platform.Desktop.Provider;

namespace YourApp
{
    internal static class Program
    {
        [STAThread]
        static void Main()
        {
            MufiyApp.Create()
                .AppConfiguration(option => {
                    // 图形后端:默认软件渲染,这里改为 OpenGL
                    option.GpuBackend = GpuBackendType.OpenGL;
                })
                .UseDesktopPlatform()
                .RegisterTheme<Win10Theme>()
                .UseMainWindow<Form1>()
                .Build();
            /* Here we go! */
            MufiyApp.Run();
        }
    }
}
跨平台支持

一次编写,处处运行

Mufiy 基于 SDL3 跨平台窗体系统与 Skia 渲染引擎,把你的 .NET 应用带到所有主流平台(含国内信创 Linux 平台)。

Windows
10 / 11
稳定支持
Linux
glibc ≥ 2.28
稳定支持
macOS
10.15+
稳定支持
Android
API ≥ 24
稳定支持
iOS
12+
实验性支持
WebAssembly
浏览器直接运行
实验性支持
0稳定平台
0支持平台
0控件 / 组件
0公开枚举
0代码复用率
LGPL-2.1开源许可证
核心特性

为什么选择 Mufiy?

从设计器到部署,Mufiy 提供全链路的跨平台开发体验,而这一切都基于开源免费的理念。

WinForms 设计器 100% 兼容
与 WinForms 设计器完全兼容:在 Visual Studio 中拖拽式设计界面,所见即所得,控件、属性窗口与事件订阅习惯全部保留。
Skia 像素级渲染引擎
以 Skia 作为界面渲染器,精准控制界面上每一个像素点的绘制,创建精美且完全自定义的 UI 组件。
接入 Impeller 渲染引擎
通过预编译着色器(SkSL → SPIR-V)消除首次绘制卡顿,利用 Metal / Vulkan 后端降低 CPU 开销,动画与滚动更稳定流畅。进行中
SDL3 跨平台窗体
基于 SDL3 跨平台多媒体库,深度支持 Windows、macOS、Linux、iOS、Android 等主流操作系统与平台。
GPU 多后端硬件加速
支持 OpenGL、Vulkan、Direct3D 12 等多种 GPU 后端,为不同平台带来真正的硬件加速渲染体验。
全部标准 WinForms 控件
提供 WinForms 的全套标准控件:Button、Label、TextBox、DataGridView、ListView 等,开箱即用。
百万数据滑动不卡顿
列表类控件针对大数据量深度优化,百万级数据滑动操作依然流畅,满足企业级应用需求。
原生浏览器控件
基于平台原生内核的 WebView(CEF / WebKitGTK / 系统内核),在桌面应用中无缝嵌入 Web 内容,支持 OSR 离屏渲染。
自定义控件开发
支持用框架能力开发完全自定义的控件,利用 Skia 渲染器绘制独一无二的 UI 组件,并接入设计器与主题系统。
兼容 WinForms GDI 绘制
Graphics 绘制 API 对齐 System.Drawing.Graphics,你的 WinForms 自绘控件几乎无需修改即可迁移,复用既有控件资产。
SVG 渲染支持
原生支持 SvgImage 矢量图形渲染,让界面在任何分辨率与缩放下都保持清晰锐利。
现代 UI 样式能力
原生支持圆角(CornerRadius)、投影(DropShadow)、渐变、透明度、形状路径等现代界面样式,轻松构建现代化 UI。
支持 Native AOT 编译
完全支持 .NET Native AOT,应用启动更快、内存占用更低,可编译为单一原生可执行文件。
开源免费
框架完全开源免费,基于 LGPL-2.1 许可证。欢迎社区贡献,共同打造最好的 .NET 跨平台 UI 框架。
框架能力

不止是控件库

除控件之外,Mufiy 还提供声明式界面、主题、动画、绘制、实时渲染与平台扩展等完整能力,均在使用手册中有详细说明。

MXAML 声明式界面 实验性支持
核心概念
平台与系统能力
实验性
MXAML / RXAML 声明式界面目前为实验性支持,正式项目建议继续使用 WinForms 设计器或 C# 代码编写界面;iOS 与 WebAssembly 平台已可正常构建运行,标注为实验性仅表示平台生态覆盖仍在完善,不影响开发使用。
GPU 渲染后端

硬件加速,全平台覆盖

Mufiy 支持多种 GPU 后端,为你的应用在不同平台带来真正的硬件加速体验。默认软件渲染,可通过 AppConfiguration 切换。

平台OpenGLVulkanDirect3D 12Metal
Windows✓ 默认✓ 支持✓ 支持—
Linux✓ 默认✓ 支持——
macOS✓ 默认——○ 后续支持
Android✓ 默认○ 后续支持——
iOS✓ 支持———
WebAssembly✓ 支持———
代码示例

简洁如 WinForms,强大如原生

保留 WinForms 的开发体验,输出跨平台的原生应用。以下是项目模板生成的标准代码。

using Mufiy;
using Mufiy.Platform.Desktop.Provider;

namespace YourApp
{
    /// <summary>应用程序入口</summary>
    internal static class Program
    {
        /// <summary>应用程序主入口点。</summary>
        [STAThread]
        static void Main()
        {
            MufiyApp.Create()
                .AppConfiguration(option => {
                    // 图形后端:使用 OpenGL。默认值是软件渲染
                    option.GpuBackend = GpuBackendType.OpenGL;
                })
                .UseDesktopPlatform()
                .RegisterTheme<Win10Theme>()
                .UseMainWindow<Form1>()
                .Build();
            /* Here we go! */
            MufiyApp.Run();
        }
    }
}
using Mufiy;
using Mufiy.Controls;
using Mufiy.Drawing;   // Color / Image / SvgImage / CornerRadius

namespace MyApp;

public partial class Form1 : Window
{
    /// <summary>构造窗体并初始化界面</summary>
    public Form1()
    {
        InitializeComponent();
    }

    /// <summary>按钮点击:弹出一个成功样式的提示</summary>
    /// <param name="sender">事件源</param>
    /// <param name="e">鼠标事件参数</param>
    private void button1_Click(object sender, MouseEventArgs e)
    {
        Toast.Show(this, "Hello, Mufiy!", ToastType.Success);
    }
}
namespace MyApp;

partial class Form1
{
    /// <summary>设计器所需容器组件</summary>
    private System.ComponentModel.IContainer components = null;

    /// <summary>释放窗体使用的资源</summary>
    /// <param name="disposing">true 表示释放托管资源</param>
    protected override void Dispose(bool disposing)
    {
        if (disposing && (components != null))
        {
            components.Dispose();
        }
        base.Dispose(disposing);
    }

    private Mufiy.Controls.Label label1;
    private Mufiy.Controls.Button button1;

    /// <summary>设计器生成的初始化代码,请勿手工修改</summary>
    private void InitializeComponent()
    {
        label1 = new Mufiy.Controls.Label();
        button1 = new Mufiy.Controls.Button();
        SuspendLayout();
        //
        // label1
        //
        label1.FontName = "Arial";
        label1.Location = new Point(243, 105);
        label1.Name = "label1";
        label1.Size = new Size(258, 49);
        label1.TabIndex = 0;
        label1.Text = "Hello World";
        label1.TextAlign = ContentAlignment.MiddleCenter;
        //
        // button1
        //
        button1.FontName = "Arial";
        button1.Location = new Point(243, 229);
        button1.Name = "button1";
        button1.Size = new Size(258, 91);
        button1.TabIndex = 1;
        button1.Text = "Hello";
        button1.Click += button1_Click;
        //
        // Form1
        //
        BackColor = SystemColors.Control;
        ClientSize = new Size(784, 561);
        Controls.Add(button1);
        Controls.Add(label1);
        Name = "Form1";
        Text = "Form1";
        ResumeLayout(false);
    }
}
发布 / 运行桌面应用时,请把目标框架选择为不带 -windows 后缀的跨平台 TFM(如 net10.0);-windows 仅用于让 Visual Studio 设计器正常工作。
技术架构

清晰的层次,强大的能力

Mufiy 采用五层架构,每一层各司其职,共同构建跨平台能力。

5API 层WinForms 设计器 API · 控件库 · GDI 兼容绘制
▲
4渲染层Skia 渲染引擎 · 像素级控制 · 正在接入 Impeller
▲
3GPU 后端OpenGL · Vulkan · Direct3D 12 · Metal
▲
2窗体系统SDL3 跨平台窗体 · 统一指针输入 · 窗口管理
▲
1平台层Win32 · Linux · Cocoa · Android · iOS · Wasm(可自行扩展)

开始你的跨平台之旅

Mufiy 完全开源免费,加入越来越多的 .NET 开发者,用熟悉的 WinForms 设计器打造真正的跨平台应用。