我在Windows Phone 8中使用Map控件。
我需要实现一个页面,用户可以使用地图控件选择他的位置。 我想知道用户第一次操作应用程序的时间。
一些背景信息: 我看到当控件显示时,它会自动居中世界地图,并引发CenterChanged事件。 我无法理解ManipulationStarted,ManipulationDelta和ManipulationCompleted是如何工作的。 我第一次拖动时,ManipulationStarted没有被调用,只有ManipulationCompleted。
我可以认为用户的第一次操作是第二次触发CenterChanged。 但这是一个黑客或猜测,我不高兴不了解它是如何工作的。
答案 0 :(得分:4)
Map控件拦截并处理Manipulation事件,因此您无法获取所有这些事件。请记住,一旦路由事件标记为e.Handled = true,它们就不再起泡。
根据您的场景,WP8会公开可能有用的UseOptimizedManipulationRouting属性。设置UseOptimizedManipulationRouting = false会导致Map,Pivot和其他控件不会吞下嵌套控件的事件。
如果这没有帮助,请查看以下诺基亚Wiki文章,其中作者遇到了与您相同的问题并使用Touch.FrameReported退出@ http://www.developer.nokia.com/Community/Wiki/Real-time_rotation_of_the_Windows_Phone_8_Map_Control