Карта SkiaSharp с кнопками маркера карты
В настоящее время я пытаюсь сделать карту, как холст с кнопками внутри, используя SkiaSharp и Xamarin.Forms.
но когда дело доходит до масштабирования / панорамирования, я не могу синхронизировать это 2, потому что, когда
а) Я использую элемент управления с действиями масштабирования / панорамирования и кнопками canvas + в качестве дочерних элементов с обратным масштабом, это в основном работает, но холст Skiasharp будет размытым, потому что это только преобразование элемента (растровое масштабирование)
б) кнопки не остаются в нужном месте при использовании прямого преобразования canvas из-за холста и отдельного контейнера содержимого для кнопок, потому что (плохая) синхронизация преобразования
Любая идея о том, как объединить эти 2 компонента на карту с маркерами кнопки, как элемент?
1 ответ
Я бы предложил использовать AbsoluteLayouts для укладки кнопок Xamarin.Forms (или изображений с GestureRecognizer) поверх нарисованного SKCanvas. Каждый раз, когда нажимается кнопка, вам в конечном итоге приходится вызывать InvalidateSurface() для SKCanvas, и он будет перерисовываться с параметрами, которые были изменены нажатием кнопки. Я часто делаю это в своем приложении и очень доволен, вы можете увидеть это здесь.