Xamarin Forms视图坐标和Android视图坐标



前提:这个答案不能回答我的问题,在这里我问如何解决这个"冲突问题"。

我注意到Xamarin Forms中视图的坐标与Android中相同视图的坐标不同,类似于view.X=150(在Xamarin Form中(对应于view.GetX()=900(在Xamarin Android中(。这给我带来了很多问题,因为我试图使用android自定义渲染器来实现拖放,在这个渲染器中,我必须知道拖放区域的位置(使用myDestinationRect.Contains(myTouchX,myTouchY)(,但由于我在Forms中的位置与安卓自定义渲染器中所需的位置不同,这对我来说是不可能的。有没有一种方法可以将表单坐标"转换"为android坐标?或者还有其他解决方案吗?

PS:在iOS中,一切都很好,似乎Forms和iOS使用相同的坐标系统。

尝试先获取设备Density,然后获取*density以转换为android坐标。

var mainDisplayInfo = DeviceDisplay.MainDisplayInfo;
var density = mainDisplayInfo.Density;
int XForms = view.X;
int XAndroid = XForms*density; //convert to android coordinates.

最新更新