如何防止 XAML 项目在其中心离开地图边界时消失?

How can I prevent XAML items from disappearing when their centres leave the map bounds?

我已根据 official docs.

向我的 MapControl 添加了 XAML 个元素

然而,当项目的中心离开地图边界时,它不再绘制,因此当放大大项目时中心不再可见时消失。

在我的例子中,我围绕一个点绘制了一个感兴趣区域的圆圈,但是当您放大到街道级别时,中心通常会离开地图并且圆圈会消失。

当 XAML 仍然部分位于屏幕上而不仅仅是中心点时,如何确保它继续绘制?

我认为没有办法做到这一点。 Attached XAML 并非设计用于像这样在地面上绘制圆圈 - 它更多的是用于将信息框之类的东西附加到图钉上,你需要 XAML 输入框或其他东西,而不仅仅是静态图像. 对于地面上的圆圈,建议使用 MapPolygon: https://docs.microsoft.com/en-us/uwp/api/Windows.UI.Xaml.Controls.Maps.MapPolygon 这也将在所有投影和视图中正常工作,而附加 XAML 则不会(如果您倾斜或旋转地图,从墨卡托更改为地球,等等您绘制 XAML 多边形的边界将相对于地面移动)。

我发现了特定问题 - 在我的例子中,我附加的 XAML 项目包含在 Canvas 控件的顶层,该控件具有 ActualWidthActualHeight 的零。据推测,基于父容器的地图会发生裁剪,因此负边距和 canvas 控件等可能会导致内容过早消失。

我重构了 XAML,因此顶层是一个 Grid 并且完全包含子项并且地图按预期工作。