LVGLSharp.Forms
The main WinForms-style compatibility layer and the normal entry point for application code.
NuGet
This page summarizes the current 12-package LVGLSharp line so you can decide which combination fits your scenario.
Together these packages make up the package line currently maintained in the repository.
The main WinForms-style compatibility layer and the normal entry point for application code.
Shared runtime abstractions, fonts, diagnostics, and helper infrastructure.
Low-level LVGL P/Invoke bindings for advanced integrations.
Platform-native LVGL assets and publish-time targets.
Windows desktop runtime for validation and application hosting.
Linux runtime covering WSLg, X11, Wayland, SDL, and FrameBuffer paths.
Headless rendering support for snapshots, regression checks, and automation.
macOS runtime boundary package with diagnostics and early host scaffolding.
Remote runtime abstractions for sessions, frames, input, and VNC/RDP-oriented work.
These 3 packages are part of the same package line and are published alongside the rest of the lineup.
Cross-platform drawing primitives without a direct System.Drawing dependency.
Experimental WPF-like bootstrap and XAML runtime loader.
Roslyn analyzers that are normally brought in transitively by LVGLSharp.Forms.
If you do not want to learn the full package structure first, start from the scenario that matches your goal.
Start with LVGLSharp.Forms + LVGLSharp.Runtime.Windows.
Add both Windows and Linux runtimes if you plan to build or verify across multiple hosts.
Add LVGLSharp.Runtime.Headless when you need screenshots, headless rendering, or regression checks.
Add LVGLSharp.Runtime.Remote only when you are intentionally building remote-session scenarios.
If you are evaluating the project for the first time, this is the simplest order.
The table below uses live NuGet badges for versions and download counts across the full package line.
<PropertyGroup>
<TargetFrameworks>net10.0-windows;net10.0</TargetFrameworks>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net10.0-windows'">
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net10.0'">
<UseLVGLSharpForms>true</UseLVGLSharpForms>
<PublishAot>true</PublishAot>
</PropertyGroup>
ApplicationConfiguration.Initialize();
Application.Run(new MainForm());