.NET MAUI에서 SkiaSharp 코드 다시 사용

SkiaSharp는 2D 벡터 그래픽, 비트맵 및 텍스트를 그리는 .NET 및 C#용 2D 그래픽 시스템입니다. 그것은 구글 제품에 광범위 하 게 사용 되는 오픈 소스 Skia 그래픽 엔진에 의해 구동. 몇 가지 사소한 업데이트와 함께 .NET 다중 플랫폼 앱 UI(.NET MAUI) 앱의 Xamarin.Forms 앱에서 SkiaSharp 코드를 다시 사용할 수 있습니다.

.NET MAUI 앱의 Xamarin.Forms 앱에서 SkiaSharp 코드를 다시 사용하려면 다음을 수행해야 합니다.

  • 프로젝트에서 Xamarin.Forms SkiaSharp NuGet 패키지를 제거하고 프로젝트에 .NET MAUI SkiaSharp NuGet 패키지를 추가합니다.
  • 네임스페이스를 업데이트합니다.
  • SkiaSharp를 초기화합니다.

NuGets 추가

.NET MAUI용 SkiaSharp는 일련의 NuGet 패키지로 패키지됩니다. Xamarin.Forms 앱을 .NET MAUI 앱으로 마이그레이션한 후에는 앱에서 기존 SkiaSharp NuGet 패키지를 모두 제거해야 합니다. 그런 다음 NuGet 패키지 관리자를 사용하여 SkiaSharp.Views.Maui.Controls NuGet 패키지를 검색하고 프로젝트에 추가합니다. 종속 SkiaSharp 패키지도 설치됩니다.

네임스페이스 업데이트

SkiaSharp를 사용하는 Xamarin.Forms 앱은 일반적으로 네임스페이스와 네임스페이 SkiaSharp 스의 형식을 SkiaSharp.Views.Forms 사용합니다. .NET MAUI용 SkiaSharp에서는 네임스페이스를 계속 사용 SkiaSharp 하지만 네임스페이스에 있던 SkiaSharp.Views.Forms 형식은 네임스페이스 및 SkiaSharp.Views.Maui.Controls 네임스페이스로 SkiaSharp.Views.Maui 이동했습니다.

다음 표에서는 .NET MAUI 앱에서 SkiaSharp 코드를 빌드하는 데 사용해야 하는 네임스페이스를 보여 줍니다.

.NET MAUI 네임스페이스 세부 정보
SkiaSharp 모든 SkiaSharp 클래스, 구조체 및 열거형을 포함합니다.
SkiaSharp.Views.Maui 터치 조작 및 이벤트 인수를 지원하는 형식을 포함합니다.
SkiaSharp.Views.Maui.Controls SKCanvasView.NET MAUI View 클래스에서 파생되고 SkiaSharp 그래픽 출력을 호스트하는 클래스를 포함합니다. 또한 다른 ImageSource 클래스를 포함합니다.
SkiaSharp.Views.Maui.Controls.Hosting UseSkiaSharp.NET MAUI 앱에서 SkiaSharp를 초기화하는 데 사용되는 메서드를 포함합니다. 자세한 내용은 SkiaSharp 초기화를 참조 하세요.

SkiaSharp 초기화

클래스의 개체에서 메서드를 UseSkiaSharp 호출하여 앱에서 SkiaSharp를 MauiAppBuilder 초기화합니다 MauiProgram .

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

참고 항목

메서드를 UseSkiaSharp 호출하려면 네임스페이 using 스에 대한 SkiaSharp.Views.Maui.Controls.Hosting 지시문을 추가해야 합니다.