当超出控件的右侧或下方时,MapControl 上的线会消失

Line over MapControl dissappears when out of right side or lower side of the control

我在 MapControl 中定义了不同的 XAML 线控件。它们改变了旋转、颜色……所以我认为最好使用 MapPolyline 应该保持静态的线条。

在地图上平移时,我发现当线条的原点在 MapControl 之外时,线条有时会消失,有时不会。它们仅在右侧或下方的 MapControl BUT 之外时消失。当他们从左侧或上侧平移时不会发生这种情况。

显然,我每次都希望它们出现在屏幕上,我不想让它们消失。

知道为什么会这样吗?我怎样才能让它们一直可见?

原点(橙色点)在 MapControl 内时可见的线 当线条起源于右侧时隐藏线条。橙色点部分可见。

原点在左侧外侧时线条可见。即使橙色点在控制之外,但线条仍然可见。

似乎有一些代码可以根据附加点是否在视口中来切换附加 XAML 项目的可见性。您可以通过沿线引入其他点来解决此问题。 一般来说,对于大多数场景,建议使用 MapElements 而不是附加 XAML。 XAML 应该真正只用于诸如具有丰富 UI 的对话框之类的东西,在这种情况下,您在地图上附加的此类对象相对较少。即使在您想要更新属性和位置的情况下,MapPolyline 也会表现得更好,并且与地图运动保持同步比 XAML 好得多。

我找到了解决线条消失问题的方法。

MapControl 上的所有线条和 XAML 形状应分组在 canvas 内,宽度为正确的宽度和高度(在我的例子中,两个线条的最大长度尺寸以及负方向和正方向,center/anchor canvas 在 MapControl.Center 中调整边距以正确适应所有控件)。

对于我所做的所有测试,即使起点和终点都不在屏幕上,线条也会停留在屏幕上。