1

我在使用 Windows.UI.Xaml.Controls.Maps.MapControl 时遇到了刷新问题。在下面的代码中,Map 是 Windows.UI.Xaml.Controls.Maps.MapControl 的一个实例。我有 mapPolygons,我每隔约 40 毫秒重复刷新一次,并且 mapPolygons 在地图中有很多伪影/闪烁。目前我只是将 MapPolygons 添加到 Map.MapElements 列表中并删除旧的。有没有办法为 Windows 10 通用应用程序中的地图控件启用双缓冲?否则,我应该怎么做才能消除伪影/闪烁?

目前,我正在添加可见性设置为 false 的元素,然后将它们设置为可见,隐藏旧元素,然后删除旧元素。

当前更新代码的片段:

polygon1.Visible = false;
polygon2.Visible = false;
Map.MapElements.Add(polygon1);
Map.MapElements.Add(polygon2);
polygon1.Visible = true;
polygon2.Visible = true;
for (int i = Map.MapElements.Count - 1 - 2; i >= 0; i--)  // Last two elements are new, remove others
{
    Map.MapElements[i].Visible = false;
}
for (int i = Map.MapElements.Count - 1 - 2; i >= 0; i--)  // Last two elements are new, remove others
{
    Map.MapElements.RemoveAt(i);
}
4

1 回答 1

1

不要删除多边形,而是尝试更新位置信息。对于地图控件,这可能会更快。请注意,地图控件是用本机 C++ 编写的,并且必须将基于 XAML 的多边形属性转换为具有一些开销的本机代码。

于 2016-03-09T01:23:16.623 回答