【问题标题】:How to request REDRAW from Xamarin.forms' side SkiaSharp?如何从 Xamarin.forms 的 SkiaSharp 请求 REDRAW?
【发布时间】:2017-01-23 19:45:06
【问题描述】:

我正在使用 Xamarin.forms 制作应用程序。 我正在使用 SkiaSharp 绘制 2d 视图。

我可以在 iOS pcl 端使用 SetNeedDisplay 来制作动画。

但我想从 Forms pcl 中调用它。 有没有这样的方法?

【问题讨论】:

  • 听起来您需要使用 X.Forms 依赖服务。见:developer.xamarin.com/guides/xamarin-forms/dependency-service
  • @jgoldberger 是的。我可以通过使用包括它在内的许多其他方式来做到这一点。但我正在寻找更简单的方法。 (就像由skiasharp.forms方面制作的)
  • @SushiHangover 嗨寿司,非常感谢。你给我的链接有点复杂。所以我决定只使用 OnPropertyChanged(from forms) 并调用 SetNeedsDisplay(on iOS) 和 Invalidate(on Android) 每个customrenderer。它对我来说工作得很好,也更容易。

标签: xamarin xamarin.forms skiasharp


【解决方案1】:

【讨论】:

  • 嗨,马修,感谢您的回复。这是新事物吗?我一直在使用自定义渲染器在表单上使用 SkiaSharp,所以这意味着我不知道 FORMS 有任何 SkiaSharp 的视图,并且不再需要使用自定义渲染器?
  • 我在几个月前添加了这个,但它位于单独的 NuGet 包中:nuget.org/packages/SkiaSharp.Views.Forms 请参阅发行说明:github.com/mono/SkiaSharp/releases
  • 你是对的,不需要自定义渲染器 - 你甚至可以使用 GL 视图进行硬件加速:developer.xamarin.com/api/namespace/SkiaSharp.Views.Forms
  • 天啊!好工作。非常感谢。我马上添加。
  • 我还没有注意到缺点,我什至会说这可能是更好的选择。关于透明度,您能否在 GitHub 上创建一个问题:github.com/mono/SkiaSharp。它应该是透明的,但我可能错过了设置该选项。透明度会在渲染时增加额外的性能影响,但我认为在大多数情况下不会很明显。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-15
  • 2019-07-23
相关资源
最近更新 更多