Double Buffering Win 10 Universal App Maps

时间:2016-02-02 09:38:44

标签: c# xaml win-universal-app bing-maps uwp-maps

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

目前,我正在添加可见性设置为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);
}

1 个答案:

答案 0 :(得分:0)

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