NavigationThemeTransition 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供页面导航动画。
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 .../>
- 继承
- 属性
Windows 要求
设备系列 |
Windows 10 (在 10.0.10240.0 中引入)
|
API contract |
Windows.Foundation.UniversalApiContract (在 v1.0 中引入)
|
示例
注解
对于 Windows 10 版本 1803,框架默认使用 NavigationThemeTransition 对页面之间的导航进行动画处理。
当应用在 Frame 中的不同内容片段之间导航时,可以使用 NavigationThemeTransition 添加动画过渡。 可以将 NavigationThemeTransition 添加到要导航到的 Page 的 Transitions 集合或导航 Frame 的 ContentTransitions 集合。 通常,我们建议使用框架的 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 |
获取与此 对象关联的 CoreDispatcher 。 CoreDispatcher 表示可以访问 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) |