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.