2012-03-02 26 views
0

我正在使用定位服務和Bing地圖的WP7應用程序。我希望Bing地圖控件旋轉,始終將當前標題放在頂部。我知道這是Bing Maps控件無法實現的,所以我嘗試使用旋轉變換來旋轉整個控件。Windows Phone上的LayoutTransformer未更新

我用在這裏找到了LayoutTransformerOnWindowsPhone組件:

http://blogs.msdn.com/b/delay/archive/2010/08/26/your-phone-can-turn-into-a-robot-layouttransformer-works-great-on-the-windows-phone-platform.aspx

頁面加載時,控制被旋轉到正確的航向,但它不會繼續轉動作爲標題的變化。這裏是我的代碼:

的XAML:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0"> 
    <toolkit:LayoutTransformer> 
     <toolkit:LayoutTransformer.LayoutTransform> 
      <RotateTransform x:Name="mapRotation" /> 
     </toolkit:LayoutTransformer.LayoutTransform> 
     <my:Map Name="map1" Margin="0,0,0,0" CredentialsProvider="xyz"/> 
    </toolkit:LayoutTransformer> 
</Grid> 

CS:

if (Compass.IsSupported) 
{ 
    _compass = new Compass {TimeBetweenUpdates = TimeSpan.FromMilliseconds(500)}; 
    _compass.CurrentValueChanged += new EventHandler<SensorReadingEventArgs<CompassReading>>(compass_CurrentValueChanged); 
    _compass.Start(); 
}  

void compass_ValueChanged(object sender, SensorReadingEventArgs<CompassReading> e) 
{ 
    Dispatcher.BeginInvoke(() => UpdateUI(e.SensorReading)); 
} 

private void UpdateUI(CompassReading compassReading) 
{ 
    _currentHeading = compassReading.TrueHeading; 
    mapRotation.Angle = _currentHeading; 
} 

回答

2

這聽起來像你正在運行到Silverlight的限制,我的第三點在這裏討論: http://blogs.msdn.com/b/delay/archive/2008/07/03/the-layout-system-lies-have-become-a-bit-more-elaborate-layouttransform-functionality-updated-and-enhanced-for-silverlight-2-beta-2.aspx

不幸的是,他們打破了我在這裏討論的解決方法: http://blogs.msdn.com/b/delay/archive/2008/09/29/maintaining-pretenses-with-the-layout-system-layouttransform-functionality-updated-for-silverlight-2.aspx

因此,我介紹了TransformUpdated方法,您應該能夠在更新所需效果的RotateTransform後調用該方法。

此外,僅供參考,有另一種方式在一定程度上簡化了這個(雖然它沒有必要在你的情況下),我在這裏討論: http://blogs.msdn.com/b/delay/archive/2009/04/09/a-bit-more-than-meets-the-eye-easily-animate-layouttransformer-with-animationmediator.aspx

在這裏: http://blogs.msdn.com/b/delay/archive/2009/04/10/a-bit-more-er-than-meets-the-eye-easily-animate-and-update-layouttransformer-with-animationmediator.aspx

我希望這是有幫助的! :)

+2

謝謝大衛!我實際上最終在mapRotation.Angle = _currentHeading行之後調用了transformer.ApplyLayoutTransform()。奇蹟般有效! – JeffCren 2012-03-03 04:19:00

相關問題