在控件右侧或下方时,MapControl上的线条消失

时间:2019-01-17 17:58:52

标签: c# uwp uwp-maps

我在MapControl中定义了不同的XAML线控件。它们会更改旋转,颜色等,因此我认为最好使用应该保持静态的MapPolyline线。

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

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

知道为什么会发生吗?我怎么能一直看到它们?

Lines visible when origin (orange point) inside the MapControl

MapControl内的原点(橙色点)时可见的线 Lines hidden when Lines origin outside right side  当“线”起源于右侧之外时,线被隐藏。橙点部分可见。

Lines visible when origin outside left side 原点在左侧外侧时可见的线。甚至橙色点也在控件之外,但线条仍然可见。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

所有在MapControl上的线条和XAML形状都应在画布内分组,并以正确的宽度和高度进行宽度设置(在我的情况下,这两个线条在尺寸以及负向和正向的最大长度,居中/将画布锚定在MapControl.Center中,并使用边距进行播放以正确地适应所有控件。

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