Condividi tramite


Riutilizzare il codice SkiaSharp in .NET MAUI

SkiaSharp è un sistema grafico 2D per .NET e C# che disegna grafica vettoriale 2D, bitmap e testo. È alimentato dal motore grafico Skia open source che viene ampiamente usato nei prodotti Google. È possibile riutilizzare il codice SkiaSharp dalle app Xamarin.Forms nell'interfaccia utente dell'app multipiattaforma .NET (.NET MAUI) con alcuni aggiornamenti secondari.

Per riutilizzare il codice SkiaSharp da un'app Xamarin.Forms in un'app MAUI .NET, è necessario:

  • Rimuovere i pacchetti NuGet Skiamarin.Forms SkiaSharp dal progetto e aggiungere i pacchetti NuGet skiaSharp .NET MAUI al progetto.
  • Aggiornare gli spazi dei nomi.
  • Inizializzare SkiaSharp.

Aggiungere NuGet

SkiaSharp per .NET MAUI viene creato come una serie di pacchetti NuGet. Dopo aver eseguito la migrazione dell'app Xamarin.Forms a un'app MAUI .NET, è necessario rimuovere tutti i pacchetti NuGet SkiaSharp esistenti dall'app. Usare quindi la gestione pacchetti NuGet per cercare il pacchetto NuGet SkiaSharp.Views.Maui.Controls e aggiungerlo al progetto. Verranno installati anche pacchetti SkiaSharp dipendenti.

Aggiornare gli spazi dei nomi

Le app Xamarin.Forms che usano SkiaSharp usano in genere tipi dello SkiaSharp spazio dei nomi e dello SkiaSharp.Views.Forms spazio dei nomi . In SkiaSharp per .NET MAUI si continuerà a usare lo SkiaSharp spazio dei nomi, ma i tipi presenti nello SkiaSharp.Views.Forms spazio dei nomi sono stati spostati negli SkiaSharp.Views.Maui spazi dei nomi e SkiaSharp.Views.Maui.Controls .

La tabella seguente illustra gli spazi dei nomi che è necessario usare per compilare il codice SkiaSharp in un'app MAUI .NET:

Spazio dei nomi MAUI .NET Dettagli
SkiaSharp Contiene tutte le classi, le strutture e le enumerazioni SkiaSharp.
SkiaSharp.Views.Maui Contiene tipi per supportare interazioni tramite tocco e argomenti di evento.
SkiaSharp.Views.Maui.Controls Contiene la SKCanvasView classe , che deriva dalla classe MAUI View .NET e ospita l'output della grafica SkiaSharp. Contiene anche classi diverse ImageSource .
SkiaSharp.Views.Maui.Controls.Hosting Contiene il UseSkiaSharp metodo usato per inizializzare SkiaSharp nell'app MAUI .NET. Per altre informazioni, vedere Initialize SkiaSharp.For more information, see Initialize SkiaSharp.

Inizializzare SkiaSharp

Inizializzare SkiaSharp nell'app chiamando il UseSkiaSharp metodo sull'oggetto MauiAppBuilder nella MauiProgram classe:

using Microsoft.Extensions.Logging;
using SkiaSharp.Views.Maui.Controls.Hosting;

namespace MyMauiApp;

public static class MauiProgram
{
    public static MauiApp CreateMauiApp()
    {
        var builder = MauiApp.CreateBuilder();
        builder
            .UseMauiApp<App>()
            .UseSkiaSharp()
            .ConfigureFonts(fonts =>
            {
                fonts.AddFont("OpenSans-Regular.ttf", "OpenSansRegular");
                fonts.AddFont("OpenSans-Semibold.ttf", "OpenSansSemibold");
            });

        #if DEBUG
        builder.Logging.AddDebug();
        #endif

        return builder.Build();
    }
}

Nota

Per chiamare il UseSkiaSharp metodo è necessario aggiungere una using direttiva per lo spazio dei SkiaSharp.Views.Maui.Controls.Hosting nomi.