加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c# – Windows Phone 8上的Map.SetView()

发布时间:2020-12-15 04:30:47 所属栏目:百科 来源:网络整理
导读:页面生命周期中是否有特定时间应调用 Map.SetView()函数?在我们的应用程序中,我们在各种地图对象上使用它,它似乎随机工作,有时完美,有时没有效果,但也没有例外. 示例代码: RouteMap.SetView(LocationRectangle.CreateBoundingRectangle(DirectionCoordinat
页面生命周期中是否有特定时间应调用 Map.SetView()函数?在我们的应用程序中,我们在各种地图对象上使用它,它似乎随机工作,有时完美,有时没有效果,但也没有例外.

示例代码:

RouteMap.SetView(LocationRectangle.CreateBoundingRectangle(DirectionCoordinates));

其中RouteMap是映射组件,DirectionCoordinates包含映射的起始/结束坐标.

我可以看到正确创建了边界框,但即使加载相同的数据,地图的定位也不会受到影响.如果我添加一个断点它似乎确实有用,所以我假设它与地图加载有关,但是将SetView()功能添加到Loaded事件也有同样的问题.我们目前在页面Loaded事件中处理地图信息.

更新

我一直在测试更多并添加事件,我知道在SetView之前调用MapLoaded事件的事实.调用SetView后,它有时会工作而不是其他工作. ViewChanging或ViewChanged事件都不会被调用.

解决方法

这显然不是最好的解决方案,但是当调用Loaded事件阻止它完成时,必须有一些未完成加载的东西.

我在Map_Loaded事件中添加了100毫秒的睡眠,它解决了我遇到的问题.

System.Threading.Thread.Sleep(500);

更新

对于某些人来说,100毫秒不起作用,你可能想要玩数字,200,500等等.它仍然是地图加载时间的非常短暂的延迟.我已经联系了微软,他们已经告诉我他们正在调查这个问题,我们很快就会得到他们的某种回应.

更新和编辑

请改用以下代码以防止UI挂起:

await Task.Delay(250);

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读