Skip to main content
net10.0net10.0-android36.0net10.0-ios26.0net10.0-maccatalyst26.0net10.0-windows10.0.19041net9.0

SkiaSharp for .NET MAUI is a set of views that can be used to draw on the screen.

Published
Sep 29, 2026
22d ago
Total Downloads
5.8M
5,831,448

Install

dotnet add package SkiaSharp.Views.Maui.Controls --version 4.154.0-preview.2.26471.11
ProductVersions
.NET
net10.0net10.0-android36.0net10.0-ios26.0net10.0-maccatalyst26.0net10.0-windows10.0.19041net9.0net9.0-android35.0net9.0-ios18.0net9.0-maccatalyst18.0net9.0-windows10.0.19041

README

SkiaSharp.Views.Maui.Controls

NuGet NuGet downloads License: MIT

SkiaSharp.Views.Maui.Controls adds SkiaSharp rendering controls and image sources to .NET MAUI applications. Put a CPU- or GPU-backed canvas alongside standard MAUI controls, draw with the full SkiaSharp API, and share the same rendering code across Android, iOS, Mac Catalyst, and Windows.

What you get

  • SKCanvasView for CPU-rendered, on-demand drawing.
  • SKGLView for hardware-accelerated drawing and continuous render loops.
  • SKImageImageSource, SKBitmapImageSource, SKPixmapImageSource, and SKPictureImageSource for MAUI images.
  • XAML support, data binding, touch input, invalidation, and density-aware canvas sizing.
  • Native handlers for Android, iOS, Mac Catalyst, and Windows.

Get started

Install the package:

dotnet add package SkiaSharp.Views.Maui.Controls

Register SkiaSharp in MauiProgram.cs:

using SkiaSharp.Views.Maui.Controls.Hosting;

public static MauiApp CreateMauiApp() =>
    MauiApp
        .CreateBuilder()
        .UseMauiApp<App>()
        .UseSkiaSharp()
        .Build();

Add a canvas to a XAML page:

<ContentPage
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:skia="clr-namespace:SkiaSharp.Views.Maui.Controls;assembly=SkiaSharp.Views.Maui.Controls">

    <skia:SKCanvasView PaintSurface="OnPaintSurface" />

</ContentPage>

Draw in the PaintSurface handler:

using SkiaSharp;
using SkiaSharp.Views.Maui;

private void OnPaintSurface(object sender, SKPaintSurfaceEventArgs e)
{
    var canvas = e.Surface.Canvas;
    canvas.Clear(SKColors.White);

    using var paint = new SKPaint
    {
        Color = SKColors.CornflowerBlue,
        IsAntialias = true,
    };

    canvas.DrawCircle(e.Info.Width / 2f, e.Info.Height / 2f, 120, paint);
}

Call InvalidateSurface() whenever state changes and the view should redraw. Use SKGLView when the scene benefits from GPU rendering or a continuous animation loop.

Documentation and resources

Feedback and contributing

SkiaSharp is an open-source Microsoft project built with the .NET community. Use GitHub Discussions for questions, file bugs and feature requests in the issue tracker, and read the contributing guide to get involved.

This package is released under the MIT license.

Changes from Previous Version

No structural changes between v4.154.0-preview.1.26454.9 and v4.154.0-preview.2.26471.11.

Adoption Assessment

A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.

This version is marked prerelease. Validate its API and upgrade path before production use.Compatibility metadata lists 10 target frameworks; confirm the exact target used by your application.The published metadata declares 40 direct dependency entries across framework groups. Inspect the resolved dependency graph for your target framework.

Related Guides & Workflows

Learn how to evaluate, integrate, or audit this package in your .NET project.