Reutilizar código SkiaSharp no .NET MAUI

SkiaSharp é um sistema gráfico 2D para .NET e C# que desenha gráficos vetoriais 2D, bitmaps e texto. Ele é alimentado pelo mecanismo gráfico Skia de código aberto que é amplamente usado em produtos do Google. Você pode reutilizar o código SkiaSharp de seus aplicativos Xamarin.Forms em seus aplicativos .NET Multi-platform App UI (.NET MAUI) com algumas atualizações secundárias.

Para reutilizar seu código SkiaSharp de um aplicativo Xamarin.Forms em um aplicativo .NET MAUI, você deve:

  • Remova os pacotes NuGet do Xamarin.Forms SkiaSharp do seu projeto e adicione os pacotes NuGet do .NET MAUI SkiaSharp ao seu projeto.
  • Atualizar namespaces.
  • Inicialize o SkiaSharp.

Adicionar NuGets

O SkiaSharp para .NET MAUI é empacotado como uma série de pacotes NuGet. Depois de migrar seu aplicativo Xamarin.Forms para um aplicativo .NET MAUI, remova todos os pacotes NuGet SkiaSharp existentes do seu aplicativo. Em seguida, use o gerenciador de pacotes NuGet para procurar o pacote NuGet SkiaSharp.Views.Maui.Controls e adicioná-lo ao seu projeto. Isso também instalará pacotes SkiaSharp dependentes.

Atualizar namespaces

Os aplicativos Xamarin.Forms que usam SkiaSharp normalmente usam tipos do namespace e do SkiaSharpSkiaSharp.Views.Forms namespace. No SkiaSharp para .NET MAUI, você continuará a usar o SkiaSharp namespace, mas os tipos que estavam no SkiaSharp.Views.Forms namespace foram movidos para os SkiaSharp.Views.Maui namespaces e SkiaSharp.Views.Maui.Controls .

A tabela a seguir mostra os namespaces que você precisará usar para criar seu código SkiaSharp em um aplicativo .NET MAUI:

Namespace MAUI do .NET Detalhes
SkiaSharp Contém todas as classes, estruturas e enumerações SkiaSharp.
SkiaSharp.Views.Maui Contém tipos para dar suporte a interações por toque e argumentos de evento.
SkiaSharp.Views.Maui.Controls Contém a SKCanvasView classe, que deriva da classe .NET MAUI View e hospeda sua saída de elementos gráficos SkiaSharp. Também contém classes diferentes ImageSource .
SkiaSharp.Views.Maui.Controls.Hosting Contém o método usado para inicializar SkiaSharp UseSkiaSharp em seu aplicativo .NET MAUI. Para obter mais informações, consulte Inicializar o SkiaSharp.

Inicializar SkiaSharp

Inicialize SkiaSharp em seu aplicativo chamando o UseSkiaSharpMauiAppBuilder método no objeto em sua 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();
    }
}

Observação

Chamar o método requer que você adicione uma using diretiva para o UseSkiaSharpSkiaSharp.Views.Maui.Controls.Hosting namespace.