Udostępnij za pośrednictwem


Ponowne używanie kodu SkiaSharp na platformie .NET MAUI

SkiaSharp to system grafiki 2D dla platformy .NET i języka C#, który rysuje grafikę wektorową 2D, mapy bitowe i tekst. Jest zasilany przez aparat graficzny Skia typu open source, który jest szeroko używany w produktach Google. Możesz ponownie użyć kodu SkiaSharp z aplikacji platformy Xamarin.Forms w aplikacjach interfejsu użytkownika aplikacji wieloplatformowych platformy .NET (.NET MAUI) z niewielkimi aktualizacjami.

Aby ponownie użyć kodu SkiaSharp z aplikacji platformy Xamarin.Forms w aplikacji .NET MAUI, musisz:

  • Usuń pakiety NuGet platformy Xamarin.Forms SkiaSharp z projektu i dodaj do projektu pakiety NuGet .NET MAUI SkiaSharp.
  • Aktualizowanie przestrzeni nazw.
  • Zainicjuj SkiaSharp.

Dodawanie pakietów NuGet

Pakiet SkiaSharp dla platformy .NET MAUI jest pakowany jako seria pakietów NuGet. Po przeprowadzeniu migracji aplikacji platformy Xamarin.Forms do aplikacji .NET MAUI należy usunąć wszystkie istniejące pakiety NuGet SkiaSharp z aplikacji. Następnie użyj menedżera pakietów NuGet, aby wyszukać pakiet NuGet SkiaSharp.Views.Maui.Controls i dodać go do projektu. Spowoduje to również zainstalowanie zależnych pakietów SkiaSharp.

Aktualizowanie przestrzeni nazw

Aplikacje platformy Xamarin.Forms korzystające z biblioteki SkiaSharp zwykle używają typów z SkiaSharp przestrzeni nazw i SkiaSharp.Views.Forms przestrzeni nazw. W usłudze SkiaSharp dla platformy .NET MAUI będziesz nadal używać SkiaSharp przestrzeni nazw, ale typy, które znajdowały się w SkiaSharp.Views.Forms przestrzeni nazw, zostały przeniesione do SkiaSharp.Views.Maui przestrzeni nazw i SkiaSharp.Views.Maui.Controls .

W poniższej tabeli przedstawiono przestrzenie nazw, których należy użyć do skompilowania kodu SkiaSharp w aplikacji .NET MAUI:

Przestrzeń nazw .NET MAUI Szczegóły
SkiaSharp Zawiera wszystkie klasy, struktury i wyliczenia SkiaSharp.
SkiaSharp.Views.Maui Zawiera typy do obsługi interakcji dotykowych i argumentów zdarzeń.
SkiaSharp.Views.Maui.Controls Zawiera klasę SKCanvasView pochodzącą z klasy .NET MAUI View i hostuje dane wyjściowe grafiki SkiaSharp. Zawiera również różne ImageSource klasy.
SkiaSharp.Views.Maui.Controls.Hosting Zawiera metodę UseSkiaSharp używaną do inicjowania biblioteki SkiaSharp w aplikacji .NET MAUI. Aby uzyskać więcej informacji, zobacz Initialize SkiaSharp.

Inicjowanie skiaSharp

Zainicjuj skiaSharp w aplikacji, wywołując metodę UseSkiaSharp w MauiAppBuilder obiekcie w MauiProgram klasie:

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();
    }
}

Uwaga

UseSkiaSharp Wywołanie metody wymaga dodania using dyrektywy dla SkiaSharp.Views.Maui.Controls.Hosting przestrzeni nazw.