Линия над MapControl исчезает, когда находится вне правой или нижней части элемента управления

У меня есть разные элементы управления строкой XAML, определенные внутри MapControl. Они меняют поворот, цвет ... поэтому я подумал, что лучше использовать линии с MapPolyline, которые должны оставаться статичными.

При панорамировании карты я обнаружил, что когда начало линий выходит за пределы MapControl, иногда линии исчезают, иногда нет. Они исчезают, только когда находятся вне MapControl, НО с правой или нижней стороны. Этого не происходит, когда они панорамируются с левой или с верхней стороны.

Очевидно, я хочу, чтобы они появлялись на экране каждый раз, я не хочу их исчезать.

Есть идеи, почему это происходит? И как сделать так, чтобы они были видны постоянно?

Линии, видимые в исходной точке (оранжевая точка) внутри MapControl

Линии, видимые, когда исходная точка (оранжевая точка) внутри MapControl  Линии скрыты, если исходные линии выходят за пределы правой стороны Линии скрыты, когда исходные линии выходят за пределы правой стороны. Оранжевая точка видна частично.

Линии видны, когда исходная точка находится вне левой стороны Линии видны, когда исходная точка находится вне левой стороны. Даже оранжевая точка находится за пределами элемента управления, но линии все еще видны.


person Imanol Zubiaurre    schedule 17.01.2019    source источник


Ответы (2)


Похоже, есть код, который переключает видимость прикрепленных элементов XAML в зависимости от того, находятся ли присоединенные точки в области просмотра. Вы можете обойти это, добавив дополнительные точки вдоль линии. В общем, для большинства сценариев рекомендуется использовать MapElements, а не прикрепленный XAML. XAML действительно следует использовать только для таких вещей, как диалоги с богатым пользовательским интерфейсом, где у вас относительно мало таких объектов, прикрепленных к карте. MapPolyline будет работать лучше даже в сценариях, где вы хотите обновить свойства и положение, и будет намного лучше синхронизироваться с движением карты, чем XAML.

person Duncan Lawler    schedule 17.01.2019
comment
Я знаю, что прошло время с тех пор, как вы написали ответ, но я забыл рассказать, как это работает, следуя вашим рекомендациям. Если строка XAML заменена на MapElement с MapPolyline, 1-. Линия не исчезает, когда границы исходных точек не отображаются на экране. 2-. Линия выглядит сглаженной, и иметь такую ​​пилу не изящно. 3-. Изменение начальной и конечной точек MapPolyline более медленное, чем с линиями XAML, движение не плавное. Собственно, вы можете увидеть, как это нарисовано ... - person Imanol Zubiaurre; 08.06.2019

Я нашел решение проблемы исчезновения линий.

Все линии и формы XAML, которые были только на MapControl, должны быть сгруппированы внутри холста, ширина и высота должны быть правильными (в моем случае максимальная длина линий в обоих измерениях, а также в отрицательном и положительном направлениях, центрировать / закрепить холст в MapControl.Center и поиграйте с полями, чтобы правильно уместить все элементы управления).

Во всех проведенных мною тестах строки остаются на экране, даже если начальная и конечная точки не отображаются на экране.

person Imanol Zubiaurre    schedule 12.06.2019