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