有人知道如何将立即模式图形绘制到xamarin.forms视图中吗?
我需要在表单中绘制一些特定于应用程序的图形。我一直在谷歌搜索并查看很多例子。我知道渲染器。我几乎可以做到,但ViewRenderer不能轻易地进行子类化(除非我遗漏了一些东西),而且我找不到合适的现有视图子类。
答案 0 :(得分:0)
有时我自己的愚蠢和厚度甚至让我感到惊讶。
答案是为每个平台创建一个独立于操作系统的具体视图。然后为每个平台创建一个ViewRenderer实现。
特定于平台的ViewRenderer< ...>然后实例化特定于平台的视图。我们即将参加比赛。
有一些细节,例如如何沟通或获取视图大小和父母,但至少这些是已知问题。
因此,您有以下组件:
一个MyXamarinFormsView,它的子类是Xamarin.Forms.View。 MyView实际上不必包含任何重要的逻辑。把它想象成一个占位符。
对于每个平台:
MyXamarinFormsViewRenderer:ViewRenderer< MyXamarinFormsView,MyPlatformSpecificView>
在任何using语句之后和命名空间声明之前(如果有),将以下属性实例添加到每个ViewRenderer:
[assembly:ExportRenderer(typeof(MyXamarinFormsView),typeof(MyXamarinFormsViewRenderer))]
MyPlatformSpecificView:特定于平台的视图(例如,适用于iOS的UIView)
将特定于图形的代码放在每个特定于平台的视图子类中。
我不确定这是否是官方/正确的做法,但它似乎对我有用。