Xamarin表单 - 自定义渲染器无法获得本机控制(UWP)

Mel*_*per 2 c# custom-renderer xamarin.forms uwp

我有一个名为RecordProvider2的类.它继承自ContentView.我想在幕后获取本机控件的实例.我不确定UWP上的控件是什么,但根据这篇文章,它应该是FrameworkElement(https://developer.xamarin.com/guides/xamarin-forms/application-fundamentals/custom-renderer/renderers/) .

所以,我编写了这个自定义渲染器,并且根据所有帐户,我应该能够使用渲染器的"Control"属性访问本机控件.但是,在OnElementChanged事件中,Control属性始终为null.我究竟做错了什么?

public class RecordProvider2Renderer : ViewRenderer<RecordProvider2, FrameworkElement>
{
    protected override void OnElementChanged(ElementChangedEventArgs<RecordProvider2> e)
    {
        base.OnElementChanged(e);

        if (Control != null)
        {
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

编辑:正如下面提到的,渲染器本身只是IS本机控制.

Sha*_*raj 6

您可以使用它this来访问本机控件实例.

 if (e.OldElement == null)
 {
       var nativeCtrl = this;
Run Code Online (Sandbox Code Playgroud)

或者,使用this.ContainerElement.

编辑1 - 注意:上面的代码将提供对本机控件容器的访问.哪个效果很好ContentView; 因为大多数本地行为,例如手势处理等都可以分配给它.