.NET MAUI で SkiaSharp コードを再利用する
SkiaSharp は、2D ベクター グラフィックス、ビットマップ、テキストを描画する .NET および C# 用の 2D グラフィックス システムです。 Google 製品で広く使用されているオープンソースの Skia グラフィックス エンジンを搭載しています。 Xamarin.Forms アプリの SkiaSharp コードは、.NET マルチプラットフォーム アプリ UI (.NET MAUI) アプリで、いくつかのマイナーな更新で再利用できます。
Xamarin.Forms アプリの SkiaSharp コードを .NET MAUI アプリで再利用するには、次の手順を実行する必要があります。
- プロジェクトから Xamarin.Forms SkiaSharp NuGet パッケージを削除し、.NET MAUI SkiaSharp NuGet パッケージをプロジェクトに追加します。
- 名前空間を更新します。
- SkiaSharp を初期化します。
NuGet の追加
SkiaSharp for .NET MAUI は、一連の NuGet パッケージとしてパッケージ化されています。 Xamarin.Forms アプリを .NET MAUI アプリに移行したら、既存のすべての SkiaSharp NuGet パッケージをアプリから削除する必要があります。 次に、NuGet パッケージ マネージャーを使用して SkiaSharp.Views.Maui.Controls NuGet パッケージを検索し、プロジェクトに追加します。 これにより、依存する SkiaSharp パッケージもインストールされます。
名前空間を更新する
SkiaSharp を使用する Xamarin.Forms アプリでは、通常、名前空間と名前空間の型がSkiaSharpSkiaSharp.Views.Forms使用されます。 SkiaSharp for .NET MAUI では、名前空間を引き続き使用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 の初期化
クラス内のオブジェクトのメソッドMauiAppBuilderを呼び出UseSkiaSharpして、アプリで SkiaSharp を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();
}
}
Note
メソッドを UseSkiaSharp 呼び出すには、名前空間のディレクティブを using
追加する SkiaSharp.Views.Maui.Controls.Hosting
必要があります。
.NET MAUI