← 所有项目

UI 框架 · 开源

持续开发中

ModernFormsNext

桌面界面,
直接用 C# 构建。

借鉴 WinForms 的窗体与事件模型,拥有自有控件和布局系统,在 .NET 10 上使用 SkiaSharp 渲染。

功能

从 C# 开始构建 UI。

C# 代码构建

使用 C# 定义窗体和控件。无需 XAML,可以直接处理事件和 UI 逻辑。

SkiaSharp 渲染

框架拥有自有控件树、布局系统和输入处理机制,自行绘制应用界面。

控件与数据绑定

提供文本框、列表、表格、菜单、对话框和容器。数据绑定将界面与应用状态关联起来。

主题与资源

支持主题令牌、资源继承和运行时主题切换。可以用 JSON 定义主题。

示例应用

两张来自仓库文档的真实截图,展示使用 ModernFormsNext 控件构建的不同布局。

Windows 上的 Explorer:ModernFormsNext 示例应用,包含工具栏、文件夹树和文件列表。
Explorer · Windows查看原图

Explorer:提供文件夹导航和文件表格的示例应用。

Windows 上的 Outlaw:包含邮件文件夹、消息列表和预览面板的示例应用。
Outlaw · Windows查看原图

Outlaw:邮件界面示例。显示的消息和发件人均为示例代码中定义的演示数据。

快速开始

运行你的第一个窗口。

需要 Windows 和 .NET 10 SDK。安装模板、创建项目,然后运行应用。

以下命令明确指定使用 1.11.1 版本。

安装指南
终端 · WindowsPowerShell
dotnet new install ModernFormsNext.Templates::1.11.1
dotnet new mfn-app -n MyApp
cd MyApp
dotnet run

代码示例

一个窗体、一个按钮、一个事件。

这是一个完整的 Windows 应用入口示例,项目需要引用 ModernFormsNext。

如果项目由模板创建,可以使用现有入口,也可以用此示例替换。

Program.csC#
using System.Drawing;
using ModernFormsNext;

internal static class Program
{
    [STAThread]
    private static void Main()
        => Application.Run(new MainForm());
}

public sealed class MainForm : Form
{
    public MainForm()
    {
        Text = "Hello, ModernFormsNext";
        Size = new Size(800, 600);

        var button = new Button
        {
            Text = "Kliknij mnie",
            Bounds = new Rectangle(24, 24, 160, 40)
        };

        button.Click += (_, _) => button.Text = "Działa!";
        Controls.Add(button);
    }
}

工具

用设计器创建窗体。

在 ModernFormsNext 设计器中创建窗体和 UserControl。通过 VSIX 扩展集成到 Visual Studio。

设计器及其工作流程仍在持续完善。请选择与框架版本匹配的扩展。

发行版本与 VSIX 扩展
  1. 设计窗体

    在设计器中添加控件、设置属性并调整布局。

  2. 保存 .mfdesign 文档

    文档保存界面的结构与设置。

  3. 继续用 C# 开发

    生成器会创建 .Designer.cs 文件。应用逻辑写在窗体代码中。

开发状态与平台

优先支持 Windows。

ModernFormsNext 正在持续开发,各平台的功能支持有所不同。

.NET 10C#MIT 许可证
Windows
主要平台

提供运行时与设计器,也是主要测试环境。

Android
实验性

共享控件和 Skia 绘图表面。窗口功能及平台服务尚未与 Windows 完全对齐。

macOS / Linux
暂无受支持的后端

目前不支持在这些平台上运行应用。