ell*_*ayo 6 c# maps windows-phone windows-phone-8
页面生命周期中是否有特定时间应该调用Map.SetView()函数?在我们的应用程序中,我们在各种地图对象上使用它,它似乎随机工作,有时完美,有时没有效果,但也没有例外.
示例代码:
RouteMap.SetView(LocationRectangle.CreateBoundingRectangle(DirectionCoordinates));
Run Code Online (Sandbox Code Playgroud)
其中RouteMap是映射组件,DirectionCoordinates包含映射的起始/结束坐标.
我可以看到正确创建了边界框,但即使加载相同的数据,地图的定位也不会受到影响.如果我添加一个断点它似乎确实有用,所以我假设它与地图加载有关,但是将SetView()功能添加到Loaded事件也有同样的问题.我们目前在页面Loaded事件中处理地图信息.
更新
我一直在测试更多并添加事件,我知道在SetView之前调用MapLoaded事件的事实.调用SetView后,它有时会工作而不是其他工作.ViewChanging或ViewChanged事件都不会被调用.
这显然不是最好的解决方案,但是当调用 Loaded 事件时,一定有一些尚未完全完成的加载,从而阻止了加载完成。
我在 Map_Loaded 事件中添加了 100 毫秒的睡眠,它解决了我遇到的问题。
System.Threading.Thread.Sleep(500);
Run Code Online (Sandbox Code Playgroud)
更新
100 毫秒对某些人来说不起作用,您可能想尝试一下 200、500 等数字。这对地图的加载时间来说仍然是一个非常短的延迟。我已经就此事联系了微软,他们告诉我他们正在调查这个问题,我们希望很快能得到他们的某种回应。
更新和编辑
请使用以下代码来防止 UI 挂起:
await Task.Delay(250);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2619 次 |
| 最近记录: |