Xamarin Forms просмотр координат и Android просмотр координат - PullRequest
0 голосов
/ 17 февраля 2020

ПОМЕЩЕНИЕ: Этот ответ НЕ отвечает на мой вопрос, здесь я спрашиваю, КАК решить эту "проблему конфликта".

Я заметил, что координаты вида в формах Xamarin отличаются от координаты того же вида, взятые в Android, что-то вроде view.X = 150 (в формах Xamarin) соответствуют view.GetX() = 900 (в Xamarin Android). Это вызывает у меня много проблем, потому что я пытаюсь реализовать перетаскивание, используя android пользовательский рендерер, в котором я должен знать положение зоны перетаскивания (используя myDestinationRect.Contains(myTouchX,myTouchY)), но с позиции, которая у меня в формах отличается от позиции, необходимой в пользовательском рендере Android, что для меня становится невозможным. Есть ли способ, как "преобразовать" координаты формы в android координаты? Или есть другие решения?

PS: в iOS все работает нормально, кажется, что формы и iOS используют одну и ту же систему координат.

1 Ответ

0 голосов
/ 18 февраля 2020

Попробуйте сначала получить Устройство Density, затем *density для преобразования в android координаты.

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