PageRenderer中SetNativeControl的不同行为

时间:2016-06-23 13:29:36

标签: xamarin win-universal-app xamarin.forms windows-10-universal xamarin.windows

我正在使用PageRenderer用于本机UWP(通用Windows平台),但它表现得很奇怪,我没想到。我使用以下类来呈现本地页面MyUWP以代替Xamarin.Forms页面加载

class MyUWPRenderer : PageRenderer
{
    protected override void OnElementChanged(ElementChangedEventArgs<Page> e)
    {
        base.OnElementChanged(e);


        if (e.OldElement != null || Element == null)
        {
            return;
        }
        try
        {
            // **** Element.Content = null;
            SetNativeControl(new MyUWP());
        }
        catch (Exception ex)
        { 
        } 
    }
}

如果我在上面的代码中没有使用Element.Content = null;,那么两个页面(Native和Xamarin.Forms)将在彼此之上呈现。因此,我必须首先将Content设置为null以使本机页面可见。

背后有什么理由或者我理解错了吗? 上面类似的代码在Xamarin.Android项目中很有效。

0 个答案:

没有答案