Compartir a través de


Reutilización del código SkiaSharp en .NET MAUI

SkiaSharp es un sistema de gráficos 2D para .NET y C# que dibuja gráficos vectoriales 2D, mapas de bits y texto. Está impulsado por el motor gráfico Skia de código abierto que se usa ampliamente en los productos de Google. Puede reutilizar el código SkiaSharp de las aplicaciones de Xamarin.Forms en las aplicaciones de la interfaz de usuario de aplicaciones multiplataforma de .NET (.NET MAUI) con algunas actualizaciones secundarias.

Para reutilizar el código SkiaSharp desde una aplicación de Xamarin.Forms en una aplicación MAUI de .NET, debe hacer lo siguiente:

  • Quite los paquetes NuGet de Xamarin.Forms SkiaSharp del proyecto y agregue los paquetes NuGet .NET MAUI SkiaSharp al proyecto.
  • Actualizar espacios de nombres.
  • Inicialice SkiaSharp.

Adición de NuGets

SkiaSharp para .NET MAUI se empaqueta como una serie de paquetes NuGet. Después de migrar la aplicación de Xamarin.Forms a una aplicación MAUI de .NET, debe quitar todos los paquetes NuGet de SkiaSharp existentes de la aplicación. A continuación, use el administrador de paquetes NuGet para buscar el paquete NuGet SkiaSharp.Views.Maui.Controls y agregarlo al proyecto. Esto también instalará paquetes skiaSharp dependientes.

Actualizar espacios de nombres

Las aplicaciones de Xamarin.Forms que usan SkiaSharp suelen usar tipos del SkiaSharp espacio de nombres y el SkiaSharp.Views.Forms espacio de nombres. En SkiaSharp para .NET MAUI, seguirá usando el SkiaSharp espacio de nombres, pero los tipos que estaban en el SkiaSharp.Views.Forms espacio de nombres se han movido a los SkiaSharp.Views.Maui espacios de nombres y SkiaSharp.Views.Maui.Controls .

En la tabla siguiente se muestran los espacios de nombres que necesitará usar para compilar el código SkiaSharp en una aplicación MAUI de .NET:

Espacio de nombres .NET MAUI Detalles
SkiaSharp Contiene todas las clases, estructuras y enumeraciones skiaSharp.
SkiaSharp.Views.Maui Contiene tipos para admitir interacciones táctiles y argumentos de evento.
SkiaSharp.Views.Maui.Controls Contiene la clase , que se deriva de la clase MAUI View de .NET y hospeda la SKCanvasView salida de gráficos SkiaSharp. También contiene diferentes ImageSource clases.
SkiaSharp.Views.Maui.Controls.Hosting Contiene el UseSkiaSharp método que se usa para inicializar SkiaSharp en la aplicación MAUI de .NET. Para obtener más información, consulte Initialize SkiaSharp( Inicializar SkiaSharp).

Inicializar SkiaSharp

Inicialice SkiaSharp en la aplicación llamando al UseSkiaSharp método en el objeto de MauiProgram la MauiAppBuilder clase :

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:

Llamar al UseSkiaSharp método requiere que agregue una using directiva para el SkiaSharp.Views.Maui.Controls.Hosting espacio de nombres .