我想在Blazor桌面应用程序(Windows, Mac, Linux等)中使用SkiaSharp
我知道Blazor Hybrid (Blazor Desktop),但我没有找到任何方法集成SkiaSharp。
所以基本上我想要的是一种在Blazor桌面应用程序中使用skasharp的方法,但没有WASM。这样的东西存在吗?
简短回答:不;不可能的。(除非我对下面的一些细节有根本的错误)
长答:
- 在Blazor Hybrid中,视图实际上是一个浏览器窗口。
- 对于你所寻求的可能,它必须与web标准完全兼容。
- 所以即使这是在桌面应用程序中,它归结为询问如何在浏览器中做SkiaSharp。 因此,它必须在WASM中运行。
OTOH,您可以在毛伊岛的NOT BLAZOR部分运行SkiaSharp。
但这不会出现在Blazor组件中。
如果你已经布局了Maui屏幕(窗口),这样Blazor WebView只是显示的一部分,那么SkiaSharp可能在屏幕上的某个地方;只是没有集成到Blazor中。
甚至可以在Blazor View上叠加其他Maui控件。但是Maui控件和Blazor内容不会知道对方在屏幕上的位置。
在毛伊岛使用SkiaSharp:
- 包含Nuget skiassharp . views . maui . core .
- 名称空间:SkiaSharp.Views.Forms
- 类:SKCanvasView。 在XAML:
<ContentPage ...
xmlns:skia="clr-namespace:SkiaSharp.Views.Forms;assembly=SkiaSharp.Views.Forms"
x:Class=...>
...
<skia:SKCanvasView ... PaintSurface="OnYourPaintThisSurface" ... />
在c#代码后面:
using SkiaSharp;
using SkiaSharp.Views.Forms;
...
private void OnYourPaintThisSurface(object sender, SKPaintSurfaceEventArgs args)
{
... // your paint code here
}