我有一个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());

09-07 11:24