← All projects

UI framework · Open source

Actively developed

ModernFormsNext

Desktop UI.
Directly in C#.

A forms-and-events model inspired by WinForms. Its own controls and layout system, rendered with SkiaSharp on .NET 10.

Features

Start with C#.

Code-first

Define forms and controls in C#. No XAML, with direct access to events and UI logic.

SkiaSharp rendering

A dedicated control tree, layout system and input handling. The framework draws the app's interface itself.

Controls and data binding

Text fields, lists, tables, menus, dialogs and containers. Data binding connects the interface to your application state.

Themes and resources

Theme tokens, inherited resources and theme switching at runtime. Themes can be defined in JSON.

Sample applications

Two real screenshots from the repository documentation, showing different layouts built with ModernFormsNext controls.

Explorer on Windows: a toolbar, folder tree and file list in a ModernFormsNext sample application.
Explorer · WindowsFull screenshot

Explorer: a sample application with folder navigation and a file table.

Outlaw on Windows: a sample application with mail folders, a message list and a preview pane.
Outlaw · WindowsFull screenshot

Outlaw: a sample mail interface. The messages and senders shown are demonstration data defined in the sample code.

Quick start

Run your first window.

You'll need Windows and the .NET 10 SDK. Install the template, create a project and run the app.

These commands are pinned to version 1.11.1.

Installation guide
Terminal · WindowsPowerShell
dotnet new install ModernFormsNext.Templates::1.11.1
dotnet new mfn-app -n MyApp
cd MyApp
dotnet run

Example

A form. A button. An event.

A complete entry point for a Windows app that references ModernFormsNext.

In a project created from the template, use the existing entry point or replace it with this example.

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

Tools

A designer for your forms.

Build forms and user controls in the ModernFormsNext designer. Visual Studio integration is available as a VSIX extension.

The designer and its workflow are still evolving. Use the extension version that matches your framework release.

Releases and VSIX extension
  1. Design a form

    Add controls, set their properties and arrange the layout in the designer.

  2. Save the .mfdesign document

    The document stores the interface structure and settings.

  3. Continue in C#

    The generator produces a .Designer.cs file. Write your application logic in the form's code.

Status and platforms

Windows comes first.

ModernFormsNext is actively developed. Support varies by platform.

.NET 10C#MIT license
Windows
Primary platform

Runtime, designer and the main focus of validation.

Android
Experimental

Shared controls and a Skia surface. Windowing and platform services do not offer full parity with Windows.

macOS / Linux
No supported backends

These are not currently supported application platforms.