Kevin C
Kevin C

Reputation: 344

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

We're using Xamarin.Forms with MacOS, and have a custom view MyCustomView : Xamarin.Forms.ContentView, and I'm trying to create a custom view renderer for our view, but it's interfering with the rendered view.

Does anyone know how to create a view renderer in my platform project?

This is the code I've tried so far, looking at similar places:

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

Event when the implementation is left blank, having this custom renderer is affecting the display of the ContentView, so I think this code must not be right - is there a way to do this?

Upvotes: 0

Views: 479

Answers (1)

pinedax
pinedax

Reputation: 9346

You could fix your issue by changing your class to inherit from VisualElementRenderer<T> instead.

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

Page has a default Renderer "PageRenderer", do not understand why ContentView does not. It would be nice if there was a ContentViewRenderer.

Hope this helps.-

Upvotes: 1

Related Questions