SkiaSharp在Blazor桌面应用程序没有WASM (Blazor混合?).



我想在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
}

最新更新