Majorsilence.Forms.Drawing.Common
26.11.3
dotnet add package Majorsilence.Forms.Drawing.Common --version 26.11.3
NuGet\Install-Package Majorsilence.Forms.Drawing.Common -Version 26.11.3
<PackageReference Include="Majorsilence.Forms.Drawing.Common" Version="26.11.3" />
<PackageVersion Include="Majorsilence.Forms.Drawing.Common" Version="26.11.3" />
<PackageReference Include="Majorsilence.Forms.Drawing.Common" />
paket add Majorsilence.Forms.Drawing.Common --version 26.11.3
#r "nuget: Majorsilence.Forms.Drawing.Common, 26.11.3"
#:package Majorsilence.Forms.Drawing.Common@26.11.3
#addin nuget:?package=Majorsilence.Forms.Drawing.Common&version=26.11.3
#tool nuget:?package=Majorsilence.Forms.Drawing.Common&version=26.11.3
Majorsilence.Forms.Drawing.Common
A cross-platform, SkiaSharp-backed replacement for the Windows-only System.Drawing.Common (GDI+),
usable on its own or as the drawing layer under
Majorsilence.Forms.
If your migration is blocked by System.Drawing.Common throwing
PlatformNotSupportedException off Windows, this is the drop-in shape you're looking for.
Install
dotnet add package Majorsilence.Forms.Drawing.Common
Types live under Majorsilence.Forms.Drawing (plus .Drawing2D, .Imaging, .Text), mirroring the
System.Drawing layout — so migration is largely a namespace change:
using Majorsilence.Forms.Drawing;
using var bitmap = new Bitmap (200, 100);
using var g = Graphics.FromImage (bitmap);
g.Clear (Color.White);
g.FillRectangle (new SolidBrush (Color.CornflowerBlue), 10, 10, 180, 80);
g.DrawString ("Hello", new Font ("Arial", 14), Brushes.Black, 20, 35);
bitmap.Save ("out.png", ImageFormat.Png);
What it implements
Brush · Brushes · SolidBrush · HatchBrush · LinearGradientBrush · PathGradientBrush ·
TextureBrush · Pen · Pens · Font · FontFamily · Image · Bitmap · Icon · Region ·
StringFormat · GraphicsPath · Matrix · imaging codecs and ImageAttributes/ColorMatrix, and
the Drawing2D/Imaging/Text enums that go with them.
What it deliberately does not reimplement
The value types are not replaced: Color, Point, PointF, Size, SizeF, Rectangle, and
RectangleF come from the real BCL System.Drawing.Primitives, which is already cross-platform and
ships with the base framework everywhere.
This matters when migrating: keep using those types exactly as-is, and only redirect the GDI+ types.
The majorsilence-migrate
CLI applies precisely this split automatically.
EMF/WMF metafile recording and playback is out of scope — a Windows-GDI concept with no cross-platform meaning on a Skia backend.
Notes
- Targets
net8.0andnet10.0. AOT-compatible and trim-analyzed. - SkiaSharp is an implementation detail: no
SK*type appears in the public API, so you are not coupled to it. - Originally developed as part of Majorsilence.Reporting.
Links
- Documentation · Cross-platform WinForms, explained
- Repository
- Compatibility matrix — the
System.Drawing/ GDI+ section - Migration guide
Licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. 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. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux (>= 3.119.4)
- System.Memory (>= 4.6.3)
-
net10.0
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux (>= 3.119.4)
-
net8.0
- SkiaSharp (>= 3.119.4)
- SkiaSharp.NativeAssets.Linux (>= 3.119.4)
NuGet packages (4)
Showing the top 4 NuGet packages that depend on Majorsilence.Forms.Drawing.Common:
| Package | Downloads |
|---|---|
|
Majorsilence.Reporting.RdlEngine
Cross-platform RDL/RDLC report rendering engine — run SQL Server Reporting Services (SSRS 2005) report definitions without a report server on Linux, macOS, Windows, and containers. SkiaSharp-based rendering, Native-AOT-compatible. Renders to PDF, HTML, MHTML, CSV, Excel, and images. Targets .NET 8 and .NET 10. |
|
|
Majorsilence.Forms
Cross-platform WinForms for .NET. A Windows Forms compatibility layer that runs your existing WinForms apps on Windows, macOS, Linux, mobile and the browser — the same Form, controls, event handlers and *.Designer.cs files, with no rewrite. Requires a backend package (Majorsilence.Forms.Avalonia for desktop). |
|
|
Majorsilence.Reporting.RdlGtk3
[MAINTENANCE MODE — new development should use the Avalonia viewer (Majorsilence.Reporting.UI.RdlAvalonia) or the web viewer.] GTK3 report viewer library for Majorsilence Reporting on Linux. Targets .NET 8 and .NET 10. |
|
|
Majorsilence.Reporting.UI
Cross-platform Avalonia desktop report viewer application for Majorsilence Reporting — view and export RDL/RDLC reports on Linux, macOS, and Windows. Targets .NET 10. |
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 26.11.3 | 0 | 10/11/2026 |
| 26.11.2 | 43 | 10/11/2026 |
| 26.11.1 | 91 | 10/10/2026 |
| 26.10.1 | 135 | 10/10/2026 |
| 26.10.0 | 91 | 10/10/2026 |
| 26.9.0 | 136 | 10/8/2026 |
| 26.8.2 | 982 | 10/6/2026 |
| 26.8.1 | 327 | 10/5/2026 |
| 26.8.0 | 377 | 10/3/2026 |
| 26.7.0 | 324 | 10/3/2026 |
| 26.6.0 | 476 | 10/2/2026 |
| 26.5.0 | 333 | 10/1/2026 |
| 26.4.0 | 1,020 | 9/29/2026 |
| 26.3.0 | 361 | 9/25/2026 |
| 26.2.0 | 433 | 9/23/2026 |
| 26.1.0 | 299 | 9/21/2026 |
| 26.0.52 | 353 | 9/12/2026 |
| 26.0.51 | 285 | 8/30/2026 |
| 26.0.50 | 282 | 8/29/2026 |
| 26.0.33 | 328 | 8/25/2026 |