繁体   English   中英

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

[英]Xamarin Forms - Custom Renderer Can't Get Native Control (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)
        {
        }
    }
}

编辑:正如下面提到的,渲染器本身仅仅本地控制。

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

 if (e.OldElement == null)
 {
       var nativeCtrl = this;

或者,使用this.ContainerElement

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

你需要,

SetNativeControl(new Panel())

在Control为NOT-NULL

该面板是您要呈现的任何本机控件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM