Platforms and Packages
DrawnUI is an umbrella for multiple .NET targets.
Use this page first when you need to decide which package to install and which runtime model fits your use case.
Choose by host
| Target | Main package | Use it when | Best fit |
|---|---|---|---|
| MAUI (Android/iOS/MacCatalyst/Windows) | DrawnUi.Maui |
You are building a native cross-platform app | App UI, gestures, animation-heavy native experiences |
| Blazor WebAssembly | DrawnUi.Blazor.Wasm |
DrawnUI should render locally in the browser | Canvas-like browser UI, high-fps, local responsiveness, animation-heavy, web surfaces |
| Blazor Server | DrawnUi.Blazor.Server |
DrawnUI should be hosted in a Blazor Server or InteractiveServer app |
Event-driven widgets, low-fps, dashboards, mixed Razor + DrawnUI pages |
| OpenTK (Windows/Linux) | DrawnUi.OpenTk.Game |
You need fast and small-sized desktop app/game | create from scratch or overlay drawn layouts on top of your OpenGL window |
| Platform-agnostic .NET | DrawnUi.Net |
You need DrawnUI without a framework-specific UI host | Headless rendering, console app, server-side, image/PDF generation, harnesses, shared-logic debugging |
.NET MAUI
Install:
dotnet add package DrawnUi.Maui
Use DrawnUi.Maui when you want a native application host with DrawnUI owning part or all of the visible UI.
Choose it for:
- mobile and desktop native apps
- rich gesture-driven UI
- animation-heavy app surfaces
- pixel-perfect custom app UI on top of MAUI app structure
Start here:
Blazor
Install the runtime package that matches where rendering should happen:
dotnet add package DrawnUi.Blazor.Wasm
dotnet add package DrawnUi.Blazor.Server
Choose DrawnUi.Blazor.Wasm when DrawnUI should stay local in the browser.
Choose DrawnUi.Blazor.Server when DrawnUI should live inside a Blazor Server app and server-rendered frames are acceptable.
Start here:
OpenTK (Windows / Linux)
Install the nuget package:
dotnet add package DrawnUi.OpenTk
Choose OpenTK when you need a native OpenGL window on Windows or Linux without overheads.
Use it for:
- embedding rich DrawnUI UIs into existing OpenTK engine scenes
- standalone desktop app with rich UI which will would also run in browser and other platforms DrawnUI supports
- 2D/2.5D games which will run with hardware acceleration and same codebase in browser and other platforms DrawnUI supports
Two integration paths:
DrawnUiWindow— subclass this when the entire window is DrawnUI contentCanvasHost— use this when your ownGameWindowsubclass owns rendering and you want DrawnUI as an overlay
Start here:
Pure .NET
Install:
dotnet add package DrawnUi.Net
Choose DrawnUi.Net when you need the DrawnUI rendering and layout model without a framework-specific app host.
Use it for:
- headless rendering
- server-side image or PDF generation
- offscreen validation of shared layout and drawing behavior
- control harnesses and repro tools
- debugging shared rendering logic before checking the same scenario in platform-dependent frameworks
Start here:
More targets coming
The DrawnUI umbrella is expanding and your PRs are welcome. Current docs cover MAUI, Blazor, DrawnUi.Net, and OpenTK, while future platform targets can slot into the same package-and-host model.