我正在构建一个与 GPS 相关的应用程序,该应用程序在其他计算中显示坐标。我的演示代码设置为每秒触发事件。
每当我更新主页用户界面(例如,具有计算纬度的文本框)时,它都可以正常工作。
问题是如果我尝试从一侧“轻弹”到另一侧来更改页面。在“轻弹”的过程中,如果要更新文本框,它会将主页跳回视图。
没有视频很难用文字解释。但是想象一下,按住点击,然后稍微拖动全景屏幕——比如说,偷看下一页但还没有翻动。好吧,如果在此期间要更新文本框,您将松开鼠标单击,它会跳回主页。
一旦你进入下一页,它就会停留,我可以看到上一页的溢出更新。没什么大不了的。但它只是试图进入下一页。
我是 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;
}
当这些文本框中的任何一个被更新时,屏幕“跳”回主页面。有点糟糕的经历。
也许这很正常?是否有一个事件可以知道用户正在尝试“滑动”到下一页?
提前致谢。