Buduję aplikację GPS, która wyświetla współrzędne pośród innych obliczeń. Mój kod demo jest skonfigurowany tak, aby uruchamiać zdarzenia co sekundę.Dlaczego strona panoramiczna WP7 przeskakuje podczas aktualizacji?
Ilekroć aktualizuję interfejs strony głównej (powiedzmy pole tekstowe z obliczoną Latitude), działa poprawnie.
Problem polega na tym, że próbuję "pstryknąć" z jednej strony na drugą stronę, aby zmienić stronę. W trakcie "pukania", jeśli pole tekstowe miało zostać zaktualizowane, przeskakuje z powrotem na główną stronę.
Trudno wyjaśnić w tekście bez wideo. Ale wyobraź sobie, że trzymasz kliknięcie i nieco powiększasz ekran panoramiczny - powiedzmy, aby zerknąć na następną stronę, ale jeszcze nie odwracając. Cóż, jeśli pole tekstowe miało zostać zaktualizowane w tym czasie, utraciłbyś przytrzymanie klawisza myszy i powróciłby do strony głównej.
Po przejściu do następnej strony pozostaje i widzę przepełnienie aktualizacji z poprzedniej strony. Nic wielkiego. Ale po prostu próbuję dostać się do następnej strony.
Jestem nowy w WP7/Silverlight, więc staram się korzystać z Dispatchera, aby poprawić jego działanie. Bez względu na to, co robię (używając Dispatchera lub nie), zawsze tak się dzieje. Zgaduję, że ma to związek z aktualizacją interfejsu użytkownika.
Trochę kodu zawsze pomaga:
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;
}
Gdy któryś z tych pól tekstowych są aktualizowane, ekran „skacze” powrót do strony głównej. Coś złego doświadczenia.
Może to normalne? Czy jest jakieś wydarzenie, na które można się zorientować, że użytkownik próbuje "przesuwać" do następnej strony?
Z góry dziękuję.