我有两个自定义视图(HybridEntry和HybridSlider),每个平台都有自定义渲染器。在自定义渲染器中,HybridSlider必须使用HybridEntry的某些特定于平台的功能。
简而言之,我想在HybridSlider的自定义渲染器中访问HybridEntry的本机控件。
通过在HybridSlider类内部声明一个名为HybridEntry的属性,我可以将Forms HybridEntry的引用传递给xaml中的Forms HybridSlider类。
XAML:
<local:HybridEntry x:Name="hybridEntry"></local:HybridEntry>
<local:HybridSlider HybridEntry="{x:Reference hybridEntry}"></local:HybridSlider>
UWP中HybridSlider的自定义渲染器-
using Windows.UI.Xaml.Controls;
using Xamarin.Forms.Platform.UWP;
[assembly: ExportRenderer(handler: typeof(Core.CustomView.HybridSlider), target: typeof(Demo.UWP.Renderers.HybridSliderwRenderer))]
namespace Demo.UWP.Renderers
{
public class HybridSliderwRenderer : ViewRenderer<Core.CustomView.HybridSlider, UserControl>
{
protected override void OnElementChanged(ElementChangedEventArgs<Core.CustomView.HybridSlider> e)
{
base.OnElementChanged(e);
if (Control == null)
{
var formsHybridEntry = e.NewElement.HybridEntry;
Demo.UWP.HybridEntry uwpEntry= (Demo.UWP.HybridEntry)formsHybridEntry; // I WANT TO GET THE NATIVE control here
}
}
}
}
如何在HybridSlider的自定义渲染器内部访问与HybridEntry类关联的本机控件类?
答案 0 :(得分:0)
此博客文章着重于获取共享控件的本机控件。
http://michaelridland.com/xamarin/creating-native-view-xamarin-forms-viewpage/
对于UWP,它非常相似,可以肯定地研究RendererFactory.GetRenderer (view)
方法。但是它可能已经过时了。如果是这样,您将在网络上找到最新的方法。