WinForms in. Cross-platform out.
Majorsilence.Forms is a cross-platform WinForms library for .NET — a Windows
Forms framework that is ready to use today, for new apps and for moving legacy and
modern WinForms applications onto a modern stack. Keep the Forms, controls, event handlers,
and *.Designer.cs files you already have —
run on Linux,
run on macOS, and run on Windows from
one build — Linux and macOS are first-class, and Android, iOS and WebAssembly support is
growing every release through
Avalonia and
Uno Platform. Seven host
backends share one control model — including a GTK 4 window on Linux, a terminal, and
WinForms and WPF bridges that let a Windows app migrate one control at a time.
Collapse the migration, not your codebase.
Migrating a WinForms app usually means a ground-up rewrite in a new UI paradigm — XAML, MVVM, the web. That's expensive, risky, and throws away years of working business logic and UX. Majorsilence.Forms mirrors the WinForms API surface and ships a compatibility layer so your existing forms, controls, and code move over with far less churn.
Reuse, don't rewrite
The same control model and event-driven code you wrote in WinForms. No XAML, no forced MVVM rewrite, no relearning the framework.
Cross-platform by construction
Everything is drawn with SkiaSharp and runs on a swappable host backend — Avalonia by default for desktop, with its own Android/iOS/Browser targets as one path to mobile and web, Uno Platform as another, and a real GTK 4 window on Linux.
Migrate one control at a time
Windows-only WinForms and WPF backends host Majorsilence.Forms controls inside the app you already ship — ToWinFormsControl(), ToWpfElement() — on .NET 10 or .NET Framework 4.8. Port piece by piece, then swap the backend to go cross-platform.
Theme it with CSS
A small, fully documented CSS subset sets every color and font token and styles controls per type and state. Edit live in Theme Studio, and apply the same sheet to real WinForms or native Avalonia controls in a mixed app.
MVVM when you want it
Majorsilence.Forms.Mvvm wires INotifyPropertyChanged and ICommand to controls without reflection — trim- and AOT-safe, and happy alongside CommunityToolkit.Mvvm. Opt in; never required.
Modern under the hood
GPU-accelerated Skia rendering, HiDPI, touch gestures, animation frames, current .NET — plus Majorsilence.Forms.Essentials for secure storage, text to speech, and launching links on every platform.
Testable and accessible
One automation tree drives in-process UI tests, a W3C WebDriver server for Selenium, an MCP server for AI assistants, Windows screen readers, and an ARIA DOM mirror in the browser.
Async dialogs, everywhere
Every modal has an async twin — ShowDialogAsync, MessageBox.ShowAsync — so the same code runs in the browser and on phones, where a blocking loop isn't possible. A bundled analyzer flags the blocking calls before you ship.
Desktop is solid. Mobile and web are growing.
An honest status per platform. The member-by-member detail lives in the compatibility matrix.
Linux — supported
Avalonia on X11 or Wayland, or a real GTK 4 window, with a WebKitGTK WebBrowser. Exercised in CI on every change. Linux guide.
macOS — supported
Native NSWindow on Apple Silicon and Intel, Retina rendering, trackpad gestures, WKWebView and Keychain. macOS guide.
Windows — supported
Run on Avalonia or Uno, or adopt it one control at a time inside an existing WinForms or WPF app, including .NET Framework 4.8.
WebAssembly — working
The whole control gallery runs live in your browser, with async dialogs and an ARIA mirror for screen readers.
Android — growing
Boots, taps, scaling, touch scrolling and the soft keyboard are confirmed on a device. Rotation and full control coverage are still being exercised.
iOS — early
Compiles and launches in a CI simulator smoke check; not yet run interactively on a device. Expect a shakeout.
One control model, a swappable host underneath.
Majorsilence.Forms owns the controls and rendering; the backend only puts pixels on screen and
delivers input. That seam is what lets the same app target Avalonia today and Uno tomorrow —
or run unchanged inside a terminal. The core multi-targets net8.0,
net10.0 and netstandard2.0;
the WinForms and WPF backends add net48 so a .NET Framework 4.8
app can host it too.
Program.cs, unchanged.
using Majorsilence.Forms;
public class MainForm : Form
{
}
static void Main (string [] args)
{
Application.Run (new MainForm ());
}
Real apps, not toy demos.
Explore every sample in the repository — a Windows Explorer clone, an Outlook clone, a client/server point-of-sale app with its own API and database, the same full control gallery running on desktop, Uno, GTK 4, the browser, Android, iOS, WPF and in a terminal, a live CSS Theme Studio, bi-directional WinForms interop, and Majorsilence.Forms embedded inside host Avalonia, Uno, GTK 4 and WinForms apps.
Answering the question that brought you here.
Most people arrive looking for one specific thing — whether Windows Forms can run on Linux, what a WinForms compatibility layer really costs, or how this compares to a rewrite in MAUI or Avalonia. Each of those has its own page.
Cross-platform WinForms, explained
Why System.Windows.Forms is Windows-only, the three ways around it, and what an API-compatible reimplementation gives up.
Can WinForms run on Linux?
Not as-is — Mono's port is long gone and GDI+ isn't there. What works instead on Ubuntu, Fedora and Debian, and how to ship it.
Can WinForms run on macOS?
Native NSWindow on Apple Silicon and Intel, what feels un-Mac-like about it, and packaging a .app.
Migrating an existing app
The majorsilence-migrate CLI does the mechanical rewrite — namespaces, project files, resources — as a readable git diff.
WinForms alternatives compared
MAUI, Avalonia, Uno Platform, Eto.Forms, WPF and Wine — measured by how much of your existing code each one keeps.
FAQ
Do Designer files still work? Is there a visual designer? What about VB.NET, DataGridView, System.Drawing, and production readiness?
Latest updates
Cross-platform WinForms in 2026: where Majorsilence.Forms fits next to MAUI, Avalonia and Uno
If you have a WinForms codebase and need Linux and macOS, the question is how much of your code survives. Here is where Majorsilence.Forms stands on each platform, honestly.
Read post →What landed since August: 26.9.0, four new backends, CSS theming, and the behaviour audit
Seven weeks and 557 commits: GTK 4, Terminal, WinForms and WPF hosts, .NET Framework 4.8 support, CSS themes, async-only dialogs on mobile and browser, and one paint change you ...
Read post →Introducing Majorsilence.Forms
A WinForms-style UI framework for moving legacy and modern WinForms apps onto a cross-platform stack — without a rewrite.
Read post →