页面切换引导用户在应用中的页面之间移动,展示页面之间的关系并提供反馈。 页面转换可帮助用户了解它们是否位于导航层次结构的顶部、在同级页面之间移动或更深入地导航到页面层次结构。
为应用中的页面之间导航提供了两个不同的动画,页面刷新 和 钻取,并由 NavigationTransitionInfo的子类表示。
WinUI 3 示例集应用程序包括大多数 WinUI 3 控件、特性和功能的交互式示例。 从 Microsoft 应用商店获取应用或在 GitHub 上获取源代码
页面刷新
页面的刷新效果是向上滑动动画和对传入内容的淡入动画的组合。 当用户被带到导航堆栈的顶部(例如在选项卡或左导航项之间导航)时使用页面刷新。
我们希望用户感受到已重新开始。
页面刷新动画由 EntranceNavigationTransitionInfo 类表示。
// Explicitly play the page refresh animation.
myFrame.Navigate(typeof(Page2), null, new EntranceNavigationTransitionInfo());
注释
Frame 自动使用 NavigationThemeTransition 对两个页面之间的导航进行动画处理。 默认情况下,动画为页面刷新。
钻取
在用户更深入地浏览应用时,例如在选择某个项目后显示详细信息。
希望传达的感觉是用户更深入地探索了应用。
钻取动画由 DrillInNavigationTransitionInfo 类表示。
// Play the drill in animation.
myFrame.Navigate(typeof(Page2), null, new DrillInNavigationTransitionInfo());
水平滑动
使用水平滑动显示同级页面彼此相邻。 NavigationView 控件会自动将此动画用于顶部导航,但如果要构建自己的水平导航体验,则可以使用 SlideNavigationTransitionInfo 实现水平幻灯片。
所需的感觉是,用户正在彼此相邻的页面之间导航。
// Navigate to the right, ie. from LeftPage to RightPage.
myFrame.Navigate(typeof(RightPage), null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight } );
// Navigate to the left, ie. from RightPage to LeftPage.
myFrame.Navigate(typeof(LeftPage), null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromLeft } );
抑制
为了避免在导航过程中播放任何动画,请使用 SuppressNavigationTransitionInfo 代替其他 NavigationTransitionInfo 子类型。
// Suppress the default animation.
myFrame.Navigate(typeof(Page2), null, new SuppressNavigationTransitionInfo());
如果您使用 连接动画 或隐式显示/隐藏动画来创建自己的过渡,那么抑制动画是非常有用的。
向后导航
在返回导航时,可以使用 Frame.GoBack(NavigationTransitionInfo) 播放特定的过渡效果。
当你根据屏幕大小动态修改导航行为时,这非常有用;例如,在响应式列表/详细信息方案中。