Повторное использование кода SkiaSharp в .NET MAUI
SkiaSharp — это 2D-графическая система для .NET и C#, которая рисует 2D-векторную графику, растровые изображения и текст. Он работает с графическим двигателем с открытым исходным кодом Skia, который широко используется в продуктах Google. Вы можете повторно использовать код SkiaSharp из приложений Xamarin.Forms в приложениях многоплатформенного пользовательского интерфейса приложений .NET (.NET MAUI) с некоторыми незначительными обновлениями.
Чтобы повторно использовать код SkiaSharp из приложения Xamarin.Forms в приложении .NET MAUI, необходимо:
- Удалите пакеты NuGet Xamarin.Forms SkiaSharp из проекта и добавьте в проект пакеты NuGet .NET MAUI SkiaSharp.
- Обновление пространств имен.
- Инициализация SkiaSharp.
Добавление NuGets
SkiaSharp для .NET MAUI упакована в виде ряда пакетов NuGet. После переноса приложения Xamarin.Forms в приложение .NET MAUI необходимо удалить все существующие пакеты NuGet SkiaSharp из приложения. Затем используйте диспетчер пакетов NuGet для поиска пакета SkiaSharp.Views.Maui.Controls NuGet и добавьте его в проект. Это также установит зависимые пакеты SkiaSharp.
Обновление пространств имен
Приложения Xamarin.Forms, использующие SkiaSharp, обычно используют типы из SkiaSharp пространства имен и SkiaSharp.Views.Forms пространства имен. В SkiaSharp для .NET MAUI вы продолжите использовать SkiaSharp пространство имен, но типы, которые были в пространстве имен, перемещены в SkiaSharp.Views.FormsSkiaSharp.Views.Maui пространства имен и SkiaSharp.Views.Maui.Controls пространства имен.
В следующей таблице показаны пространства имен, которые необходимо использовать для создания кода SkiaSharp в приложении .NET MAUI:
Пространство имен .NET MAUI | Сведения |
---|---|
SkiaSharp | Содержит все классы, структуры и перечисления SkiaSharp. |
SkiaSharp.Views.Maui | Содержит типы для поддержки сенсорного взаимодействия и аргументов событий. |
SkiaSharp.Views.Maui.Controls | Содержит SKCanvasView класс, производный от класса MAUI View .NET, и размещает выходные данные графики SkiaSharp. Также содержит различные ImageSource классы. |
SkiaSharp.Views.Maui.Controls.Hosting | Содержит UseSkiaSharp метод, используемый для инициализации SkiaSharp в приложении .NET MAUI. Дополнительные сведения см. в разделе Initialize SkiaSharp. |
Инициализация SkiaSharp
Инициализировать SkiaSharp в приложении, вызвав UseSkiaSharp метод объекта 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
пространства имен.