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.