我在 Grid 中有一个简单的 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">
.....
这是重新调整地图大小并将 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"/>
.....
问题是地图确实可以很好地重新调整大小以填充屏幕(并且它是 0,0 移动到右上角),但我不能拖动它(实际地图)!如果我在屏幕顶部的大小与原始大小匹配的区域(动画之前)开始拖动,我只能拖动它。就像有一种视图(负责接收触摸/拖动事件的视图)没有沿整个地图重新调整大小。
甚至它上面的图钉层也会被“剪切”。如果图钉超出顶部的原始可视尺寸,它会被剪切(就像超出屏幕一样),即使地图仍然正常显示到屏幕底部。
知道为什么吗?
阿涅洛