2014-07-18 1 views
11

xaml을 사용하여지도에 푸시 핀을 표시하는 Windows Phone 런타임 앱이 있습니다.MapControl지도를 끌 때 Xaml 요소 뒤틀림

<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> 

지도를 드래그하면 컨트롤이 동일한 위치를 유지하려고하는 데 약간의 지연이 있습니다.

도움을 주시면 감사하겠습니다.

감사합니다, 다음

+0

지연과 같은 문제를 다루는 동안, 나는 당신이 작업을 "NormalizedAnchorPoint"을 가지고 있는지 궁금합니다. 내가 바인딩을 사용할지 여부에 관계없이 항상 (0,0)을 사용합니다./ – sibbl

+1

MapControl의 API는 도청되어있어 누구나 사용하지 못하게합니다. 이것은 많은 발견 된 오작동 중 하나입니다. NormalizedAnchorPoint가 제대로 작동하게하려면 연결된 속성을 DataContext의 Point 속성에 바인딩해야합니다. 나는 code-behibd로부터 값을 할당하는 것이 또한 트릭을 할 것이라고 믿는다. 불행히도지도 요소에 대한 지연을 수정할 수 없었습니다. 깜박 거리는 데 도움이되는 것을 발견하면 공유하십시오! – Malutek

+0

afaik normalizedanchorpoint * only *는 x 및 y 값이 0 또는 1 인 새 Point (x, y)를 허용합니다. – koenmetsu

답변

0

당신이 CenterChanged 또는 ZoomLevelChanged에 몇 가지 작업을 수행하는 경우는하지 않습니다. 나는이 사건들에서 몇 가지 물건들을 계산하고 있었고, 그것은 전시가되었다. 이 같은 (반응 확장을 사용하여) 조절과 사용자를위한 많은 부드러운 경험을해야합니다

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());