首页 > 解决方案 > 如何在 Xamarin.Forms MacOS 中为 ContentView 创建自定义渲染器?

问题描述

我们正在使用Xamarin.Formswith MacOS,并且有一个自定义视图MyCustomView : Xamarin.Forms.ContentView,我正在尝试为我们的视图创建一个自定义视图渲染器,但它会干扰渲染视图。

有谁知道如何在我的平台项目中创建视图渲染器?

这是我到目前为止尝试过的代码,查看了类似的地方:

[assembly: Xamarin.Forms.ExportRenderer(typeof(MyCustomView), typeof(MyCustomViewRenderer))]
namespace Mac.Renderers
{
    public class MyCustomViewRenderer : ViewRenderer<Xamarin.Forms.ContentView, AppKit.NSView>
    {
        public MyCustomViewRenderer()
        {
           // My implementation
        }
    }
}

当实现留空时的事件,有这个自定义渲染器会影响 ContentView 的显示,所以我认为这段代码一定不正确 - 有没有办法做到这一点?

标签: xamarinxamarin.formsxamarin.mac

解决方案


您可以通过将类更改为继承来解决您的问题VisualElementRenderer<T>

[assembly: Xamarin.Forms.ExportRenderer(typeof(MyCustomView), typeof(MyCustomViewRenderer))]
namespace Mac.Renderers
{
    public class MyCustomViewRenderer : VisualElementRenderer<ContentView>
    {
        public MyCustomViewRenderer()
        {
           // My implementation
        }
    }
}

Page有一个默认的Renderer“PageRenderer”,不明白为什么ContentView没有。如果有 ContentViewRenderer 就好了。

希望这可以帮助。-


推荐阅读