如何将Xamarin窗体视图转换为大小相同的Native视图iOSAndroid?

问题描述 投票:0回答:1

我正在使用这里的例子,但我正在努力填写正确的大小参数,使其代表与表单视图相同的大小。https:/michaelridland.comxamarincreating-native-view-xamarin-forms-viewpage。

    public static UIView ConvertFormsToNative(Xamarin.Forms.View view, CGRect size)
    {
        var renderer = RendererFactory.GetRenderer(view);

        renderer.NativeView.Frame = size;

        renderer.NativeView.AutoresizingMask = UIViewAutoresizing.All;
        renderer.NativeView.ContentMode = UIViewContentMode.ScaleToFill;

        renderer.Element.Layout(size.ToRectangle());

        var nativeView = renderer.NativeView;

        nativeView.SetNeedsLayout();

        return nativeView;
    }

而且是安卓系统的。

public static ViewGroup ConvertFormsToNative(Xamarin.Forms.View view, Rectangle size)
{
    var vRenderer = RendererFactory.GetRenderer (view);
    var viewGroup = vRenderer.ViewGroup;
    vRenderer.Tracker.UpdateLayout ();
    var layoutParams = new ViewGroup.LayoutParams ((int)size.Width, (int)size.Height);
    viewGroup.LayoutParameters = layoutParams;
    view.Layout (size);
    viewGroup.Layout (0, 0, (int)view.WidthRequest, (int)view.HeightRequest);
    return viewGroup; 
}

}

从我的Xamarin Forms中应该放入什么值,这样它将代表在Native View上有相同的CGRect要求。

xamarin xamarin.forms xamarin.android xamarin.ios
1个回答
0
投票
var rect = new CGRect(); 
rect.X = (nfloat)view.X; 
rect.Y = (nfloat)view.Y; 
rect.Width = (nfloat)view.Width; 
rect.Height = (nfloat)view.Height; 

解决了,其中 "view "是Xamarin Forms视图。

© www.soinside.com 2019 - 2024. All rights reserved.