我正在構建與其他計算顯示座標的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;
}
當這些文本框的更新,屏幕上顯示「跳」回主畫面。一種不好的經歷。
也許這是正常的?知道用戶試圖「滑動」到下一個頁面時是否有事件需要涉及?
在此先感謝。