在WP7中调整地图窗口小部件的大小

时间:2012-12-11 16:18:59

标签: silverlight windows-phone-7 map

我在网格中有一个简单的地图填充其中一行。 当用户点击地图时,我希望它填满整个屏幕尺寸(可能带有动画)。

这是带有地图窗口小部件的网格:

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <Grid x:Name="stackPanel">
        <Grid.RowDefinitions>
            <RowDefinition Height="200"/>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>

        <Maps:Map x:Name="storesMap" Grid.Row="0" Center="{Binding MapCenter, Mode=TwoWay}" ScaleVisibility="Visible" CopyrightVisibility="Collapsed" LogoVisibility="Visible" Visibility="Collapsed" Tap="storesMap_Tap" VerticalAlignment="Top" ZoomBarVisibility="Collapsed" Margin="9,0,12,12" CredentialsProvider="AgKbZTg6fSdp1j_edOa7hCUc6mUoj6duKABt8hMu_PHEG7JjaAJBWqkdODjctYDG">
            <Maps:Map.RenderTransform>
                <CompositeTransform/>
            </Maps:Map.RenderTransform>
            <Maps:MapLayer x:Name="myPushpinLayer">
                <Maps:MapItemsControl x:Name="storePin" ItemsSource="{Binding StoresPinList}" />
            </Maps:MapLayer>
        </Maps:Map>

        <StackPanel x:Name="WaitingControls" Grid.Row="1" VerticalAlignment="Center" Margin="0,24,0,0">

      .....

这是动画(它的一部分),它重新调整Map的大小,并将PageTitle和ApplicationTitle调暗为0.

         <VisualState x:Name="FullscreenMap">
            <Storyboard Duration="00:00:0.3">
                <DoubleAnimation To="0" Duration="00:00:0.3" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="PageTitle" d:IsOptimized="True"/>
                <DoubleAnimation To="0" Duration="00:00:0.3" Storyboard.TargetProperty="(UIElement.Opacity)" Storyboard.TargetName="ApplicationTitle" d:IsOptimized="True"/>
                <DoubleAnimation From="188" To="800" Duration="00:00:0.3" Storyboard.TargetProperty="Height" Storyboard.TargetName="storesMap"/>
                <DoubleAnimation From="435" To="480" Duration="00:00:0.3" Storyboard.TargetProperty="Width" Storyboard.TargetName="storesMap"/>
                <DoubleAnimation From="0" Duration="00:00:0.3" To="-161" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateY)" Storyboard.TargetName="storesMap" d:IsOptimized="True"/>
                <DoubleAnimation From="0" Duration="00:00:0.3" To="-21" Storyboard.TargetProperty="(UIElement.RenderTransform).(CompositeTransform.TranslateX)" Storyboard.TargetName="storesMap" d:IsOptimized="True"/>

             .....

问题是Map DOES很好地重新调整大小以填充屏幕(它的0,0移动到右上角),但我无法拖动它(实际地图)! 我只能拖动它,如果我在屏幕顶部的一个区域中开始拖动,该区域的大小与原始大小相匹配(在动画之前)。就像有一种视图(负责接收触摸/拖动事件的视图)没有在整个地图上重新调整大小。

即使是顶部的图钉层也会被“切割”。如果一个引脚超出了原始可视大小的顶部,它就会被切断(好像走出屏幕一样),即使地图仍然一直显示在屏幕底部。

知道为什么吗?

Aniello

0 个答案:

没有答案