NavigationThemeTransition 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
提供页面导航动画。
public ref class NavigationThemeTransition sealed : Transition
/// [Microsoft.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
/// [Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.WinUIContract, 65536)]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
class NavigationThemeTransition final : Transition
[Microsoft.UI.Xaml.Markup.ContentProperty(Name="DefaultNavigationTransitionInfo")]
[Windows.Foundation.Metadata.Activatable(65536, "Microsoft.UI.Xaml.WinUIContract")]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.WinUIContract), 65536)]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
public sealed class NavigationThemeTransition : Transition
Public NotInheritable Class NavigationThemeTransition
Inherits Transition
<NavigationThemeTransition .../>
- 继承
- 属性
示例
提示
有关详细信息、设计指南和代码示例,请参阅 页面转换。
WinUI 3 库应用包括大多数 WinUI 3 控件、特性和功能的交互式示例。 通过 Microsoft Store 获取应用,或在 GitHub 上获取源代码。
注解
在 Windows 10 版本 1803 中,Frame 默认使用 NavigationThemeTransition 来为页面之间的导航创建动画。
当应用在 Frame 中的不同内容片段之间导航时,可以使用 NavigationThemeTransition 添加动画切换。 可以将 NavigationThemeTransition 添加到要导航到的页面的 Transitions 集合,或向导航框架添加 ContentTransitions 集合。 一般情况下,建议使用框架的 ContentTransitions 属性来确保所有导航页面都发生切换。
此示例演示已添加到 Frame的 ContentTransitions 集合的 NavigationThemeTransitions。
<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 |
始终在Windows 应用 SDK应用中返回 |
DispatcherQueue |
|
方法
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) |