Xamarin.forms和立即模式图形

时间:2015-01-07 00:10:18

标签: ios graphics xamarin.ios xamarin.forms

有人知道如何将立即模式图形绘制到xamarin.forms视图中吗?

我需要在表单中绘制一些特定于应用程序的图形。我一直在谷歌搜索并查看很多例子。我知道渲染器。我几乎可以做到,但ViewRenderer不能轻易地进行子类化(除非我遗漏了一些东西),而且我找不到合适的现有视图子类。

1 个答案:

答案 0 :(得分:0)

有时我自己的愚蠢和厚度甚至让我感到惊讶。

答案是为每个平台创建一个独立于操作系统的具体视图。然后为每个平台创建一个ViewRenderer实现。

特定于平台的ViewRenderer< ...>然后实例化特定于平台的视图。我们即将参加比赛。

有一些细节,例如如何沟通或获取视图大小和父母,但至少这些是已知问题。

因此,您有以下组件:

一个MyXamarinFormsView,它的子类是Xamarin.Forms.View。 MyView实际上不必包含任何重要的逻辑。把它想象成一个占位符。

对于每个平台:

MyXamarinFormsViewRenderer:ViewRenderer< MyXamarinFormsView,MyPlatformSpecificView>

在任何using语句之后和命名空间声明之前(如果有),将以下属性实例添加到每个ViewRenderer:

[assembly:ExportRenderer(typeof(MyXamarinFormsView),typeof(MyXamarinFormsViewRenderer))]

MyPlatformSpecificView:特定于平台的视图(例如,适用于iOS的UIView)

将特定于图形的代码放在每个特定于平台的视图子类中。

我不确定这是否是官方/正确的做法,但它似乎对我有用。