答案 0 :(得分:2)
这不是一个新页面,它只是地图顶部的某种面板(如Grid或StackPanel)。您可以通过将Grid放在其他元素上并相应地设置其TranslateY来实现它,如下所示:
<Grid x:Name="LayoutRoot">
<maps:MapControl x:Name="Map"/>
<Grid x:Name="Overlay" Background="Red">
<Grid.RenderTransform>
<CompositeTransform x:Name="OverlayTransform" TranslateY="300"/>
</Grid.RenderTransform>
</Grid>
</Grid>
然后,您可以根据需要为OverlayTransform.TranslateY设置动画。如果要通过用户交互实现滑动,则应处理Manipulation [Started / Delta / Completed]事件,例如:
<Grid x:Name="Overlay" Background="Red" ManipulationMode="TranslateY" ManipulationDelta="Overlay_OnManipulationDelta">
...
private void Overlay_OnManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs args)
{
OverlayTransform.TranslateY += args.Delta.Translation.Y;
}
从那里你可以开始构建更复杂的逻辑,例如面板的一些锚点或漂亮的滑入/滑出动画。