xamarin crossplatform canvas

时间:2016-09-26 18:14:23

标签: c# canvas xamarin

我正在调查Xamarin作为我们的跨平台解决方案的选项。对我们而言,我们可以创建自己的自定义交互式控件至关重要。

我见过的示例(http://devcenter.wintellect.com/jprosise/supercharging-xamarin-forms-with-custom-renderers-part-5)展示了如何创建自定义渲染控件。不幸的是,他们都基本上展示了如何根据平台不同地渲染到Canvas。这对我们来说是不可接受的。

是否有真正的跨平台方式来创建Xamarin自定义渲染控件而无需在每个平台特定实现中编写相同的绘图逻辑?

3 个答案:

答案 0 :(得分:5)

我最近不得不做出同样的决定,最终我决定使用SkiaSharp。

  • SkiaSharp是对Skia库的.NET绑定,并继承了此库的功能和强大功能,因此在某种程度上也可以使原始的Skia文档/示例/社区受益
  • SkiaSharp使用实际上支持Android和Chrome的功能。此外,还有硬件/ GPU加速画布和视图。
  • 偏好NGraphics的唯一理由是支持SVG,但现在从2016年11月发布的1.55版本开始,SkiSharp支持加载.svg文件。
  • Xamarin还发布了Xamarin.Forms和Xamarin Android和iOS平台(SkiaSharp Views& Layers)的库。
  • 任何Xamarin产品都不仅通过Github提供支持,还通过Xamarin网站和论坛以及Xamarin用户社区提供支持。
  • 使用Xamarin,未来有更好的机会发展和改进图书馆。
  • 单个开发人员可能难以改进或保持项目活跃多年。

答案 1 :(得分:1)

https://github.com/praeclarum/NGraphics

  

NGraphics是一个用于在.NET上渲染矢量图形的跨平台库。它使用高质量的本机渲染器为即时和保留模式图形提供统一的API。

     

您可以将其用于UI小部件的跨平台呈现。或者作为图形丰富的交互式视图的基础。或者您可能只想要一种简单的方法来导入和导出SVG和PNG文件。无论哪种方式,我相信你会在这里找到一些有趣的东西。

答案 2 :(得分:0)

另一个替代方案可以是SkiaSharp,它具有比NControl / NGraphics更多的功能

了解详情: https://blog.xamarin.com/cross-platform-2d-graphics-with-skiasharp/

SkiaSharp远远优于NGraphics,因为它使用了Android和Chrome的实际功能。此外,还有硬件/ GPU加速画布和视图。这是源链接:github.com/mono/SkiaSharp