Uno Platform Quickstart
Step 1: Setup your environment first by following the QuickStart Get Started instructions for Uno Platform.
Step 2: Create a new Blank Uno Platform project by choosing the ‘Blank’ preset while following these instructions.
Step 3: Upgrade the Windows SDK version, Microsoft.Windows.SDK.NET.Ref and Microsoft.WindowsAppSDK to the latest (non-prerelease) versions supported.
To do that you will need to update the TargetFramework version for Windows and the WindowsSdkPackageVersion, WinAppSdkVersion properties in your project’s csproj file.
For example in your PROJECT_NAME.csproj:
<TargetFrameworks>
<!-- Code for other TargetFrameworks omitted for brevity -->
net8.0-windows10.0.22621;
</TargetFrameworks>
<PropertyGroup>
<WindowsSdkPackageVersion>10.0.22621.34</WindowsSdkPackageVersion>
<WinAppSdkVersion>1.5.240802000</WinAppSdkVersion>
</PropertyGroup>
For more detailed information, please see the Windows SDK references and implicit packages details.
Step 4: Install the ScottPlot.WinUI NuGet package.
To do that you can use the NuGet Package Manager in Visual Studio or manually:
-
Edit your project file
PROJECT_NAME.csprojand add the reference:<ItemGroup> <PackageReference Include="ScottPlot.WinUI" /> </ItemGroup> -
Edit
Directory.Packages.propsand add the reference version:<ItemGroup> <PackageVersion Include="ScottPlot.WinUI" Version="5.0.38" /> </ItemGroup>
Step 5: Edit MainPage.xaml to reference the ScottPlot.WinUI package and add a WinUIPlot control to the page.
<Page x:Class="QuickstartApp.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:QuickstartApp"
xmlns:ScottPlot="using:ScottPlot.WinUI"
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<ScottPlot:WinUIPlot x:Name="WinUIPlot1" />
</Page>
Step 6: Edit MainPage.xaml.cs to add data to the plot and initiate a render
using ScottPlot;
namespace QuickstartApp;
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
WinUIPlot1.Plot.Add.Signal(Generate.Sin(51));
WinUIPlot1.Plot.Add.Signal(Generate.Cos(51));
WinUIPlot1.Refresh();
}
}
Screenshots
Samples
For hands-on learning, two sample applications are available in the Uno Platform samples repository that demonstrate ScottPlot integration:
-
A basic sample following the ScottPlot Uno Platform Quickstart guide here.
-
A different sample displaying a signal plot with 5 million random points, also based on the Quickstart guide but with modified code behind.
What is the Uno Platform?
The Uno Platform is an Open-source platform for building single codebase native mobile, web, desktop, and embedded apps quickly.
-
Flexible: Your choice of OS (Windows, macOS, Linux), IDE (Visual Studio, VS Code, JetBrains Rider, Codespaces/Gitpod), state management, and design systems. Use only what works for you.
-
Productive: Visual Studio, VS Code, JetBrains Rider XAML & C# Hot Reload built-in. One-click Figma design exports.
-
Rich: Reuse 100’s of .NET UI components or 1st party native controls for beautiful apps.
-
Beautiful: Pixel-perfect, Material, Fluent, or Cupertino-themed apps on all platforms.
Visit their website and documentation for more details.
Uno Platform Support
If you have questions about the Uno Platform, they have an engineering team and community that can help!
- Uno Platform website: Frequently Asked Questions (FAQ)
- Uno Platform on GitHub: create an issue or start a discussion
- Uno Platform Discord Server (All are welcome!)






