Sdílet prostřednictvím


Opakované použití kódu SkiaSharp v .NET MAUI

SkiaSharp je 2D grafický systém pro .NET a C#, který nakreslí 2D vektorovou grafiku, rastrové obrázky a text. Je poháněn opensourcovým grafickým modulem Skia, který je široce používán v produktech Google. Kód SkiaSharp můžete znovu použít z aplikací Xamarin.Forms v uživatelském rozhraní multiplatformních aplikací .NET (.NET MAUI) s několika dílčími aktualizacemi.

Pokud chcete znovu použít kód SkiaSharp z aplikace Xamarin.Forms v aplikaci .NET MAUI, musíte:

  • Odeberte balíčky NuGet Xamarin.Forms SkiaSharp z projektu a přidejte do projektu balíčky NuGet .NET MAUI SkiaSharp NuGet.
  • Aktualizujte obory názvů.
  • Inicializace SkiaSharp.

Přidání NuGetů

SkiaSharp pro .NET MAUI je zabalená jako řada balíčků NuGet. Po migraci aplikace Xamarin.Forms do aplikace .NET MAUI byste měli z aplikace odebrat všechny existující balíčky NuGet SkiaSharp. Pak pomocí správce balíčků NuGet vyhledejte balíček NuGet SkiaSharp.Views.Maui.Controls NuGet a přidejte ho do projektu. Tím se také nainstalují závislé balíčky SkiaSharp.

Aktualizace oborů názvů

Aplikace Xamarin.Forms, které používají SkiaSharp, obvykle používají typy z SkiaSharp oboru názvů a SkiaSharp.Views.Forms oboru názvů. Ve skiaSharpu pro .NET MAUI budete dál používat SkiaSharp obor názvů, ale typy, které byly v SkiaSharp.Views.Forms oboru názvů, se přesunuly do SkiaSharp.Views.Maui oborů názvů a SkiaSharp.Views.Maui.Controls oborů názvů.

Následující tabulka ukazuje obory názvů, které budete muset použít k sestavení kódu SkiaSharp v aplikaci .NET MAUI:

Obor názvů .NET MAUI Detaily
SkiaSharp Obsahuje všechny třídy, struktury a výčty SkiaSharp.
SkiaSharp.Views.Maui Obsahuje typy pro podporu dotykových interakcí a argumentů událostí.
SkiaSharp.Views.Maui.Controls SKCanvasView Obsahuje třídu, která je odvozena z třídy .NET MAUI View a hostuje výstup grafiky SkiaSharp. Obsahuje také různé ImageSource třídy.
SkiaSharp.Views.Maui.Controls.Hosting Obsahuje metodu UseSkiaSharp , která se používá k inicializaci SkiaSharp v aplikaci .NET MAUI. Další informace naleznete v tématu Inicializace skiaSharp.

Inicializace SkiaSharpu

Inicializace SkiaSharp v aplikaci voláním UseSkiaSharp metody na MauiAppBuilder objektu ve vaší MauiProgram třídě:

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

Poznámka:

UseSkiaSharp Volání metody vyžaduje přidání using direktivy pro SkiaSharp.Views.Maui.Controls.Hosting obor názvů.