【问题标题】:Line over MapControl dissappears when out of right side or lower side of the control当超出控件的右侧或下侧时,地图控件上的线会消失
【发布时间】:2019-06-12 15:50:41
【问题描述】:

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

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

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

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

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

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

【问题讨论】:

    标签: c# uwp uwp-maps


    【解决方案1】:

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

    【讨论】:

    • 我知道你写了一个答案已经过去了,但我忘了告诉你它是如何按照你的指南工作的。如果 XAML 行被带有 MapPolyline 的 MapElement 替换,则为 1-。当原点边界不在屏幕中时,线不会消失。 2-。线出现锯齿,有这样的锯齿并不优雅。 3-。更改 MapPolyline 起点和终点比使用 XAML 线更缓慢,移动不流畅。其实,你可以看到它是如何绘制的......
    【解决方案2】:

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

    MapControl 上的所有线条和 XAML 形状都应分组在画布内,宽度和高度正确(在我的情况下,两个维度以及负方向和正方向的线条的最大长度,中心/将画布锚定在 MapControl.Center 中并使用边距以正确适应所有控件)。

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

    【讨论】:

      猜你喜欢
      • 2019-03-03
      • 1970-01-01
      • 2017-07-28
      • 1970-01-01
      • 1970-01-01
      • 2012-08-22
      • 2019-12-28
      • 2012-09-19
      • 1970-01-01
      相关资源
      最近更新 更多