Windows 10 Mobile API : 在另一个页面上创建页面
Windows 10 Mobile API : Creating Page over another page
我正在学习Windows 10 移动应用程序开发。在地图应用程序中,按住任意位置会出现一个新页面,可以向上滑动该页面以显示有关固定位置的更多信息。截图:
我想知道如何制作这样的东西。
这不是新页面,它只是地图顶部的某种面板(如 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;
}
从那里您可以开始构建更复杂的逻辑,例如面板的一些锚点或漂亮的 slide-in/slide-out 动画。
我正在学习Windows 10 移动应用程序开发。在地图应用程序中,按住任意位置会出现一个新页面,可以向上滑动该页面以显示有关固定位置的更多信息。截图:
我想知道如何制作这样的东西。
这不是新页面,它只是地图顶部的某种面板(如 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;
}
从那里您可以开始构建更复杂的逻辑,例如面板的一些锚点或漂亮的 slide-in/slide-out 动画。