【问题标题】:Xamarin Forms view coordinates and Android view coordinatesXamarin Forms 视图坐标和 Android 视图坐标
【发布时间】:2020-06-01 12:49:05
【问题描述】:

前提:This Answer 没有回答我的问题,在这里我问如何解决这个“冲突问题”。

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

PS:在 iOS 中一切正常,似乎 Forms 和 iOS 使用相同的坐标系。

【问题讨论】:

  • 可能是一些 dpi 问题?
  • 可以吗?

标签: android xamarin.forms view coordinates custom-renderer


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2013-02-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多