页面切换

页面切换引导用户在应用中的页面之间移动,展示页面之间的关系并提供反馈。 页面转换可帮助用户了解它们是否位于导航层次结构的顶部、在同级页面之间移动或更深入地导航到页面层次结构。

为应用中的页面之间导航提供了两个不同的动画,页面刷新钻取,并由 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) 播放特定的过渡效果。

当你根据屏幕大小动态修改导航行为时,这非常有用;例如,在响应式列表/详细信息方案中。