如何在 Xamarin.Forms MacOS 中为 ContentView 创建自定义渲染器?

How can I create a Custom Renderer for a ContentView in Xamarin.Forms MacOS?

我们将 Xamarin.FormsMacOS 一起使用,并且有一个自定义视图 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 的显示,所以我认为这段代码一定是不正确的 - 有没有办法做到这一点?

您可以通过将 class 改为继承自 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 就好了。

希望对您有所帮助。-