[英]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.