我有一个Windows Phone运行时应用程序,在其中使用xaml在 map 上显示图钉。
<Maps:MapControl
Center="{Binding GeoPoint, Mode=OneWay}"
Name="mapControl"
Height="270"
MapServiceToken="token"
ZoomLevel="1">
<Ellipse
Fill="Red"
Height="20"
Width="20"
Maps:MapControl.Location="{Binding GeoPoint, Mode=OneWay}"
Maps:MapControl.NormalizedAnchorPoint="1, 0.5"/>
</Maps:MapControl>
当我拖动 map 时,控件试图保持在同一位置会有些滞后。
任何帮助,将不胜感激。
谢谢,
最佳答案
如果您正在CenterChanged或ZoomLevelChanged上做一些工作,请不要做。我在此事件中正在计算一些东西,这是showtopper。对于用户进行节流(使用响应式扩展),您应该获得更加顺畅的体验,如下所示:
Observable.FromEventPattern<object>(this.MyMap, "CenterChanged").Throttle(TimeSpan.FromSeconds(.25)).ObserveOnDispatcher().Subscribe(e => UpdateMap());
Observable.FromEventPattern<object>(this.MyMap, "ZoomLevelChanged").Throttle(TimeSpan.FromSeconds(.25)).ObserveOnDispatcher().Subscribe(e => UpdateMap());