Réutiliser le code SkiaSharp dans .NET MAUI
SkiaSharp est un système graphique 2D pour .NET et C# qui dessine des graphiques vectoriels 2D, des bitmaps et du texte. Il est alimenté par le moteur graphique Skia open source qui est largement utilisé dans les produits Google. Vous pouvez réutiliser du code SkiaSharp à partir de vos applications Xamarin.Forms dans vos applications d’interface utilisateur d’application multiplateforme .NET (.NET MAUI) avec certaines mises à jour mineures.
Pour réutiliser votre code SkiaSharp à partir d’une application Xamarin.Forms dans une application .NET MAUI, vous devez :
- Supprimez les packages NuGet Xamarin.Forms SkiaSharp de votre projet et ajoutez les packages NuGet .NET MAUI SkiaSharp à votre projet.
- Mettez à jour les espaces de noms.
- Initialisez SkiaSharp.
Ajouter nuGets
SkiaSharp pour .NET MAUI est empaqueté sous la forme d’une série de packages NuGet. Une fois que vous avez migré votre application Xamarin.Forms vers une application .NET MAUI, vous devez supprimer tous les packages NuGet SkiaSharp existants de votre application. Ensuite, utilisez le gestionnaire de package NuGet pour rechercher le package NuGet SkiaSharp.Views.Maui.Controls et l’ajouter à votre projet. Cela installe également les packages SkiaSharp dépendants.
Mettre à jour les espaces de noms
Les applications Xamarin.Forms qui utilisent SkiaSharp utilisent généralement des types à partir de l’espace SkiaSharp de noms et de l’espace SkiaSharp.Views.Forms de noms. Dans SkiaSharp pour .NET MAUI, vous continuerez à utiliser l’espace SkiaSharp de noms, mais les types qui se trouvaient dans l’espace SkiaSharp.Views.Forms de noms ont été déplacés dans les SkiaSharp.Views.Maui espaces de noms et SkiaSharp.Views.Maui.Controls les espaces de noms.
Le tableau suivant présente les espaces de noms que vous devez utiliser pour générer votre code SkiaSharp dans une application .NET MAUI :
Espace de noms .NET MAUI | Détails |
---|---|
SkiaSharp | Contient toutes les classes, structures et énumérations SkiaSharp. |
SkiaSharp.Views.Maui | Contient des types pour prendre en charge les interactions tactiles et les arguments d’événement. |
SkiaSharp.Views.Maui.Controls | Contient la SKCanvasView classe, qui dérive de la classe .NET MAUI View et héberge votre sortie graphique SkiaSharp. Contient également différentes ImageSource classes. |
SkiaSharp.Views.Maui.Controls.Hosting | Contient la UseSkiaSharp méthode utilisée pour initialiser SkiaSharp dans votre application .NET MAUI. Pour plus d’informations, consultez Initialize SkiaSharp. |
Initialiser SkiaSharp
Initialisez SkiaSharp dans votre application en appelant la UseSkiaSharp méthode sur l’objet MauiAppBuilder de votre 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();
}
}
Remarque
L’appel de la UseSkiaSharp méthode nécessite l’ajout d’une using
directive pour l’espace SkiaSharp.Views.Maui.Controls.Hosting
de noms.