Majorsilence.Forms
26.0.32
dotnet add package Majorsilence.Forms --version 26.0.32
NuGet\Install-Package Majorsilence.Forms -Version 26.0.32
<PackageReference Include="Majorsilence.Forms" Version="26.0.32" />
<PackageVersion Include="Majorsilence.Forms" Version="26.0.32" />
<PackageReference Include="Majorsilence.Forms" />
paket add Majorsilence.Forms --version 26.0.32
#r "nuget: Majorsilence.Forms, 26.0.32"
#:package Majorsilence.Forms@26.0.32
#addin nuget:?package=Majorsilence.Forms&version=26.0.32
#tool nuget:?package=Majorsilence.Forms&version=26.0.32
Majorsilence.Forms
Take your WinForms apps cross-platform — without rewriting them.
A WinForms-style UI framework for .NET. You keep the programming model you already know — Forms,
controls, event handlers, even your *.Designer.cs files — and gain Windows, macOS, and Linux, with
mobile and web reachable through the backends below.
⚠️ Beta. The API is stabilizing and not every WinForms corner is covered yet. Great for new cross-platform LOB apps and for migrating real apps today — just pin your version.
This package needs a backend
Majorsilence.Forms contains the controls and does all its own drawing with
SkiaSharp. It deliberately references no windowing toolkit,
so on its own it cannot open a window. Add one backend package alongside it:
dotnet add package Majorsilence.Forms
dotnet add package Majorsilence.Forms.Avalonia # desktop default
Minimal app
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
using Majorsilence.Forms;
public class MainForm : Form
{
public MainForm ()
{
Text = "Hello";
Controls.Add (new Label { Text = "Hello, Majorsilence.Forms!", Left = 20, Top = 20 });
}
}
internal static class Program
{
[STAThread]
private static void Main () => Application.Run (new MainForm ());
}
Referencing Majorsilence.Forms.Avalonia is all the configuration a desktop app needs — the backend
is discovered automatically. To use a different one, set it before the first window is created:
Majorsilence.Forms.Backends.Platform.Backend = new Majorsilence.Forms.Headless.HeadlessPlatformBackend ();
Or scaffold the whole thing:
dotnet new install Majorsilence.Forms.Templates
dotnet new majorsilenceforms
dotnet run
The package family
| Package | Use it for |
|---|---|
Majorsilence.Forms |
The controls and the WinForms-compatible API. Always required. |
Majorsilence.Forms.Avalonia |
Desktop backend (Windows/macOS/Linux), plus Android, iOS, and Browser (WASM). |
Majorsilence.Forms.Uno |
Uno Platform backend — desktop, mobile, WebAssembly. |
Majorsilence.Forms.Headless |
Offscreen rendering for tests and CI. No display required. |
Majorsilence.Forms.Drawing.Common |
Skia-backed replacement for the Windows-only System.Drawing.Common (GDI+). Referenced automatically. |
Majorsilence.Forms.Telerik |
Telerik UI for WinForms compatibility surface, for apps migrating off it. |
Migrating an existing WinForms app
The repo ships a majorsilence-migrate CLI that rewrites a whole solution — project files,
namespaces, and System.Drawing usage — onto Majorsilence.Forms, and reports what needs a human.
It can also convert incrementally with --dual-build, leaving the app buildable against real
WinForms until you're ready to switch.
- Migration guide
- Compatibility matrix — what's implemented, approximated, or out of scope
Links
- Documentation — getting started, training guide, FAQ
- Live browser demo — the full control gallery, running in your browser
- Repository
- Getting started
- Platform backends
- Samples — control gallery, an Explorer clone, an Outlook clone
Licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
-
net10.0
- Majorsilence.Forms.Drawing.Common (>= 26.0.32)
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux (>= 3.119.4)
- System.Formats.Nrbf (>= 9.0.0)
- System.Resources.Extensions (>= 8.0.0)
- Topten.RichTextKit (>= 0.4.167)
-
net8.0
- Majorsilence.Forms.Drawing.Common (>= 26.0.32)
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux (>= 3.119.4)
- System.Formats.Nrbf (>= 9.0.0)
- System.Resources.Extensions (>= 8.0.0)
- Topten.RichTextKit (>= 0.4.167)
NuGet packages (5)
Showing the top 5 NuGet packages that depend on Majorsilence.Forms:
| Package | Downloads |
|---|---|
|
Majorsilence.Forms.Telerik
Telerik UI for WinForms compat surface (RadGridView, RadPdfViewer, RadRichTextEditor, RadScheduler, and more) for Majorsilence.Forms. |
|
|
Majorsilence.Forms.Headless
Headless SkiaSharp platform backend for Majorsilence.Forms — offscreen rendering for tests and a reference second backend. |
|
|
Majorsilence.Forms.Avalonia
Avalonia 12 platform backend for Majorsilence.Forms — the default desktop host, so a cross-platform WinForms app gets real native windows on Windows, macOS and Linux, plus Android, iOS and Browser (WebAssembly) through Avalonia's own targets. |
|
|
Majorsilence.Forms.Uno
Uno Platform (Skia) platform backend for Majorsilence.Forms — hosts a cross-platform WinForms app on Uno's desktop, iOS, Android and WebAssembly targets. |
|
|
LibMPlayerWinform
Media player control and server for dotnet. Winforms, avalonia, uno desktop controls for playback via mplayer or mpv. Server side process video files using ffmpeg. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.0.32 | 159 | 8/19/2026 |
| 26.0.31 | 173 | 8/17/2026 |
| 26.0.30 | 167 | 8/13/2026 |
| 26.0.29 | 167 | 8/8/2026 |
| 26.0.28 | 152 | 8/7/2026 |
| 26.0.27 | 152 | 8/6/2026 |
| 26.0.26 | 171 | 8/4/2026 |
| 26.0.25 | 185 | 8/1/2026 |
| 26.0.24 | 177 | 7/23/2026 |
| 26.0.23 | 173 | 7/14/2026 |
| 26.0.22 | 186 | 7/9/2026 |
| 26.0.18 | 176 | 7/7/2026 |
| 26.0.0 | 207 | 7/3/2026 |