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.