我正在构建与其他计算显示坐标的GPS相关应用程序。我的演示代码设置为每秒触发事件。为什么WP7全景页面在更新时跳回来?
无论何时我更新主页面UI(例如,带有计算出的纬度的文本框),它都可以正常工作。
问题是如果我试图从一侧“轻弹”到另一侧,改变页面。在“轻弹”过程中,如果要更新文本框,则会将主页面跳回到视图中。
很难在没有视频的文本中解释。但是,想象一下点击 - 握住,然后略微画一个全景画面 - 比如说,看一看下一页,但不能翻动。那么,如果在这段时间内要更新文本框,那么您将不再需要鼠标点击,而是跳回到主页面。
一旦你到达下一页,它会保持,我可以看到从上一页的溢出更新。那里没什么大不了的。但它只是试图进入下一页。
我是WP7/Silverlight的新手,所以我一直在尝试使用Dispatcher来提高响应速度。无论我做什么(使用Dispatcher或不),总会发生这种情况。所以,我猜这与UI更新有关。
一些代码总是有帮助:
void GeoWatcher_PositionChanged(object sender,
GeoPositionChangedEventArgs<GeoCoordinate> e)
{
Deployment.Current.Dispatcher.BeginInvoke(() => MyPositionChanged(e));
}
void MyPositionChanged(GeoPositionChangedEventArgs<GeoCoordinate> e)
{
var model = GeoProcessor.GetPosition(e.Position);
latitude.Text = model.Latitude;
longitude.Text = model.Longitude;
altitude.Text = model.Altitude;
accuracy.Text = model.Accuracy;
direction.Text = model.Direction;
speed.Text = model.Speed;
speedAvg.Text = model.SpeedAvg;
}
当这些文本框的更新,屏幕上显示“跳”回主画面。一种不好的经历。
也许这是正常的?知道用户试图“滑动”到下一个页面时是否有事件需要涉及?
在此先感谢。