他の計算の中で座標を表示する GPS 関連のアプリケーションを構築しています。私のデモ コードは、毎秒イベントを発生させるように設定されています。
メイン ページの 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;
}
これらのテキストボックスのいずれかが更新されると、画面はメイン ページに「ジャンプ」して戻ります。ちょっと悪い経験。
多分それは正常ですか?ユーザーが次のページに「スライド」しようとしていることを知るためにフックするイベントはありますか?
前もって感謝します。