我正在使用定位服務和Bing地圖的WP7應用程序。我希望Bing地圖控件旋轉,始終將當前標題放在頂部。我知道這是Bing Maps控件無法實現的,所以我嘗試使用旋轉變換來旋轉整個控件。Windows Phone上的LayoutTransformer未更新
我用在這裏找到了LayoutTransformerOnWindowsPhone組件:
頁面加載時,控制被旋轉到正確的航向,但它不會繼續轉動作爲標題的變化。這裏是我的代碼:
的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;
}
謝謝大衛!我實際上最終在mapRotation.Angle = _currentHeading行之後調用了transformer.ApplyLayoutTransform()。奇蹟般有效! – JeffCren 2012-03-03 04:19:00