Freigeben über


Wiederverwenden von SkiaSharp-Code in .NET MAUI

SkiaSharp ist ein 2D-Grafiksystem für .NET und C#, das 2D-Vektorgrafiken, Bitmaps und Text zeichnet. Es wird von der Open-Source Skia-Grafik-Engine unterstützt, die umfassend in Google-Produkten verwendet wird. Sie können SkiaSharp-Code aus Ihren Xamarin.Forms-Apps in Ihren .NET Multi-Platform App UI (.NET MAUI)-Apps mit einigen kleineren Updates wiederverwenden.

Um Ihren SkiaSharp-Code aus einer Xamarin.Forms-App in einer .NET MAUI-App wiederzuverwenden, müssen Sie:

  • Entfernen Sie die Xamarin.Forms SkiaSharp NuGet-Pakete aus Ihrem Projekt, und fügen Sie Ihrem Projekt die .NET MAUI SkiaSharp NuGet-Pakete hinzu.
  • Aktualisieren von Namespaces.
  • Initialisieren Sie SkiaSharp.

NuGets hinzufügen

SkiaSharp für .NET MAUI wird als Eine Reihe von NuGet-Paketen verpackt. Nachdem Sie Ihre Xamarin.Forms-App zu einer .NET MAUI-App migriert haben, sollten Sie alle vorhandenen SkiaSharp NuGet-Pakete aus Ihrer App entfernen. Verwenden Sie dann den NuGet-Paket-Manager, um nach dem Paket "SkiaSharp.Views.Maui.Controls NuGet" zu suchen und es Ihrem Projekt hinzuzufügen. Dadurch werden auch abhängige SkiaSharp-Pakete installiert.

Aktualisieren von Namespaces

Xamarin.Forms-Apps, die SkiaSharp verwenden, verwenden in der Regel Typen aus dem SkiaSharp Namespace und dem SkiaSharp.Views.Forms Namespace. In SkiaSharp für .NET MAUI verwenden Sie weiterhin den SkiaSharp Namespace, aber die Typen im SkiaSharp.Views.Forms Namespace wurden in die SkiaSharp.Views.Maui Namespaces verschoben.SkiaSharp.Views.Maui.Controls

In der folgenden Tabelle sind die Namespaces aufgeführt, die Sie zum Erstellen Ihres SkiaSharp-Codes in einer .NET MAUI-App verwenden müssen:

.NET MAUI-Namespace Details
SkiaSharp Enthält alle SkiaSharp-Klassen, -Strukturen und -Enumerationen.
SkiaSharp.Views.Maui Enthält Typen zur Unterstützung von Touchinteraktionen und Ereignisargumenten.
SkiaSharp.Views.Maui.Controls Enthält die SKCanvasView Klasse, die von der .NET MAUI-Klasse View abgeleitet wird und ihre SkiaSharp-Grafikausgabe hostet. Enthält auch unterschiedliche ImageSource Klassen.
SkiaSharp.Views.Maui.Controls.Hosting Enthält die UseSkiaSharp Methode, die zum Initialisieren von SkiaSharp in Ihrer .NET MAUI-App verwendet wird. Weitere Informationen finden Sie unter Initialize SkiaSharp.

Initialisieren von SkiaSharp

Initialisieren Sie SkiaSharp in Ihrer App, indem Sie die UseSkiaSharp Methode für das MauiAppBuilder Objekt in Ihrer MauiProgram Klasse aufrufen:

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();
    }
}

Hinweis

Zum Aufrufen der UseSkiaSharp Methode müssen Sie eine using Direktive für den SkiaSharp.Views.Maui.Controls.Hosting Namespace hinzufügen.