NavigationThemeTransition 类

定义

提供页面导航动画。

public ref class NavigationThemeTransition sealed : Transition
/// [Windows.Foundation.Metadata.Activatable(65536, Windows.Foundation.UniversalApiContract)]
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
class NavigationThemeTransition final : Transition
/// [Windows.Foundation.Metadata.ContractVersion(Windows.Foundation.UniversalApiContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
class NavigationThemeTransition final : Transition
[Windows.Foundation.Metadata.Activatable(65536, typeof(Windows.Foundation.UniversalApiContract))]
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
public sealed class NavigationThemeTransition : Transition
[Windows.Foundation.Metadata.ContractVersion(typeof(Windows.Foundation.UniversalApiContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
[Windows.Foundation.Metadata.Activatable(65536, "Windows.Foundation.UniversalApiContract")]
public sealed class NavigationThemeTransition : Transition
Public NotInheritable Class NavigationThemeTransition
Inherits Transition
<NavigationThemeTransition .../>
继承
Object Platform::Object IInspectable DependencyObject Transition NavigationThemeTransition
属性

Windows 要求

设备系列
Windows 10 (在 10.0.10240.0 中引入)
API contract
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)

示例

提示

有关详细信息、设计指南和代码示例,请参阅 页面转换

如果已安装 WinUI 2 库 应用,请单击此处 打开该应用,并查看页面转换操作

注解

对于 Windows 10 版本 1803,框架默认使用 NavigationThemeTransition 对页面之间的导航进行动画处理。

当应用在 Frame 中的不同内容片段之间导航时,可以使用 NavigationThemeTransition 添加动画过渡。 可以将 NavigationThemeTransition 添加到要导航到的 PageTransitions 集合或导航 FrameContentTransitions 集合。 通常,我们建议使用框架的 ContentTransitions 属性来确保所有导航页都发生转换。

此示例显示已添加到 Frame的 ContentTransitions 集合的 NavigationThemeTransition

<Frame ...>
    <Frame.ContentTransitions>
        <TransitionCollection>
            <NavigationThemeTransition/> 
        </TransitionCollection> 
    </Frame.ContentTransitions> 
    ...
</Frame> 
var frame = new Frame(); 
frame.ContentTransitions = new TransitionCollection(); 
frame.ContentTransitions.Add(new NavigationThemeTransition()); 

在 Windows 10 中,提供了两个不同的动画,用于在应用中的页面之间导航。 导航动画由 NavigationTransitionInfo 的子类表示。

  • 页面刷新:页面刷新是页面导航的默认动画。 它是传入内容的 向上滑动 动画和 淡入 动画的组合。 使用顶级导航(如导航菜单)时,应使用页面刷新。

页面刷新动画由 EntranceNavigationTransitionInfo 类表示。 可以使用 EntranceNavigationTransitionInfo.IsTargetElement 附加属性将页面刷新动作应用于页面的子集;例如,除页面的命令 UI 之外的所有内容。

  • 钻取:当用户与表示指向另一个页面的链接的页面上的 UI 交互时,应使用钻取动画。 例如,在表示相册列表的页面中,当用户单击相册项时,应该在转换到相册页面时进行钻取。

动画中的钻取由 DrillInNavigationTransitionInfo 类表示。

默认情况下,NavigationThemeTransition 播放页面刷新动画。 但是,可以通过设置 NavigationThemeTransition 的 DefaultNavigationTransitionInfo 属性来替代此行为。 默认情况下,此属性的 NavigationTransitionInfo 值用于所有导航。

可以使用采用 3 个参数的 Frame.Navigate 重载来指定要用于特定导航的动画。

在此示例中,当用户从专辑列表“钻取”到表示特定专辑的页面时,音乐浏览应用会请求动画钻取。

void AlbumsListView_ItemClick(object sender, ItemClickEventArgs e) 
{
    // Get albumId from clicked item... 
    Frame.Navigate(typeof(AlbumPage), albumId, new DrillInNavigationTransitionInfo());
} 

此外,还可以使用 Frame.GoBack (NavigationTransitionInfo) 后退堆栈中导航回时播放特定转换。 基于屏幕大小动态修改导航行为时(例如,在响应式主/细节场景中),这会很有用。 有关更多示例,请参阅 XAML 大纲/详细信息示例

SuppressNavigationTransitionInfo

如果要避免在导航期间播放任何动画,可以使用 SuppressNavigationTransitionInfo 代替其他 NavigationTransitionInfo 子类型。

// Navigate to your first page without a transition 
Frame.Navigate(typeof(MainPage), null, new SuppressNavigationTransitionInfo()); 

构造函数

NavigationThemeTransition()

初始化 NavigationThemeTransition 类的新实例。

属性

DefaultNavigationTransitionInfo

获取或设置在页面之间导航时使用的默认转换。

DefaultNavigationTransitionInfoProperty

标识 DefaultNavigationTransitionInfo 依赖属性。

Dispatcher

获取与此 对象关联的 CoreDispatcherCoreDispatcher 表示可以访问 UI 线程上的 DependencyObject 的工具,即使代码是由非 UI 线程启动的。

(继承自 DependencyObject)

方法

ClearValue(DependencyProperty)

清除依赖属性的本地值。

(继承自 DependencyObject)
GetAnimationBaseValue(DependencyProperty)

返回为依赖属性建立的任何基值,该基值适用于动画未处于活动状态的情况。

(继承自 DependencyObject)
GetValue(DependencyProperty)

DependencyObject 返回依赖属性的当前有效值。

(继承自 DependencyObject)
ReadLocalValue(DependencyProperty)

如果设置了本地值,则返回依赖属性的本地值。

(继承自 DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

注册一个通知函数,用于侦听此 DependencyObject 实例上特定 DependencyProperty 的更改。

(继承自 DependencyObject)
SetValue(DependencyProperty, Object)

设置 DependencyObject 上依赖属性的本地值。

(继承自 DependencyObject)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

取消以前通过调用 RegisterPropertyChangedCallback 注册的更改通知。

(继承自 DependencyObject)

适用于

另请参阅