我正在开发一个Xamarin Forms应用程序,我遇到了2个问题
首先: 我有我的自定义按钮渲染器,它工作正常。现在我已经包含了另一个拥有它自己的按钮渲染项目的参考。在这种情况下,按钮有两个渲染器。这将被称为和如何??
第二 如果我想使用这两个渲染怎么办?
我尝试了什么: 从引用项目的渲染器继承我的渲染器,但它不起作用。我对这两个渲染器的注册感到困惑。如果从其他渲染器继承,如何注册我的渲染器。
答案 0 :(得分:1)
对于您的第一个问题,可能是编译器首先找到的那个问题将是使用的问题。然而,这只是基于观察,我还没有找到任何文件来支持这一点。
如果这是您必须支持的,那么您可以做的是从引用项目中的渲染器中删除汇编属性并将它们移动到目标项目中,即
从渲染器中移动以下内容:
[assembly:ExportRenderer(typeof(CutomButton),typeof(MyApp.Renderers.CustomButtonRenderer))]
比方说,iOS Target项目并将其置于AppDelegate类之上。
这意味着您将在AppDelegate中拥有其中的几行,但您可以控制使用哪个渲染器,即库中的渲染器(如果您可以确保它们不包含上述装饰)或您自己的代码中的那些。
答案 1 :(得分:0)
对于第二个问题,请始终创建一个继承XF控件的新类,以便控件和渲染器成为一对一的关系。
[assembly: ExportRenderer(typeof(Button), typeof(MyApp.Renderers.CustomButtonRenderer))] //bad
[assembly: ExportRenderer(typeof(CutomButton), typeof(MyApp.Renderers.CustomButtonRenderer))] //good