当前位置: 首页 > backend >正文

WinUI3开发_Frame用法

什么是Frame?

WinUI3中,Frame是用于页面导航的控件,它类似于一个内容容器,支持在不同Page之间切换,一般NavigationView就是采用Frame来做页面切换,并且Frame还自带切换动画,下面是Frame的演示:
请添加图片描述

在WinUI3中使用它

想要在WinUI3中使用它非常简单,只需要在XAML里定义出来就可以了:

<Frame x:Name="contentFrame" />

关键点在于加载不同的页面,Frame提供了NavigateApi用于加载不同的页面,下面是它的一个加载页面的示例:

contentFrame().Navigate(winrt::xaml_typename<App1::BlankPage>());

BlankPage为你的子Pagexaml_typename用于将页面转换成为Navigate所需要的数据类型,Navigate需要的是一个包含XAML元数据的TypeName类型,而xaml_typename则是用于将Page转换成为Navigate所需要带有XAML元数据的TypeName类型

**Tips
使用xaml_typename需要包含#include <winrt/Windows.UI.Xaml.Interop.h>头文件

Navigate接受三个参数:
Windows::UI::Xaml::Interop::TypeName const& sourcePageType: 要加载的页面
IInspectable const& parameter: 给页面传递的参数,需要子页面实现OnNavigatedTo,一般传递父页面的This用于与子页面交互
Windows::UI::Xaml::Navigation::NavigationTransitionInfo const& transitionInfo: 页面载入时的动画效果
下面是动画演示:

  • EntranceNavigationTransitionInfo 页面从下方边缘滑入,一般用于首次加载,Navigate默认使用该动画效果
  • DrillInNavigationTransitionInfo 页面缩放进入
  • SlideNavigationTransitionInfo 页面从指定方向进入可以通过Effect设置方向
  • SuppressNavigationTransitionInfo 无动画
    下面是代码示例:
 auto anima= winrt::Microsoft::UI::Xaml::Media::Animation::EntranceNavigationTransitionInfo {};contentFrame().Navigate(winrt::xaml_typename<App1::BlankPage>(), nullptr, anima);

当使用SlideNavigationTransitionInfo时可以通过Effect来设置方向:

anima.Effect(SlideNavigationTransitionEffect::FromRight);

SlideNavigationTransitionEffect取值如下:

enum class SlideNavigationTransitionEffect : int32_t
{FromBottom = 0,FromLeft = 1,FromRight = 2,
};
http://www.xdnf.cn/news/15920.html

相关文章:

  • 服务器设置国外IP无法访问对防御攻击有用吗?
  • 一文详解REST风格
  • 一个适合MCU的分级菜单框架
  • .NET SDK 9.0.200引入对SLNX解决方案文件的支持
  • django filter按两个属性 去重
  • Linux——自制shell命令行解释器
  • 【LeetCode 热题 100】208. 实现 Trie (前缀树)
  • 剖析Sully.ai:革新医疗领域的AI助手功能启示
  • ssms(SQL 查询编辑器) 添加快捷键 Ctrl+D(功能等于Ctrl+C + Ctrl+V),一步到位
  • Bun v1.2.19发布,node_modules隔离,sql比node快6倍
  • Kotlin 高阶函数初步学习
  • Laravel 系统版本查看及artisan管理员密码找回方法针对各个版本通用方法及原理-优雅草卓伊凡
  • 信息学奥赛一本通 1576:【例 2】选课 | 洛谷 P2014 [CTSC1997] 选课
  • 子网划分核心原理 (网络原理1)
  • [学习] Hilbert变换:从数学原理到物理意义的深度解析与仿真实验(完整实验代码)
  • 《通信原理》学习笔记——第五章
  • Spring 源码阅读(二) 核心概念解析 ApplicationContext、类型转化
  • 【PyTorch】图像二分类项目
  • 【JS逆向基础】数据库之mysql
  • 7.19-7.20 Java基础 | File类 I/O流学习笔记
  • pyhton基础【27】课后拓展
  • 【Linux】3. Shell语言
  • 深度相机的工作模式(以奥比中光深度相机为例)
  • SQL Server(2022)安装教程及使用_sqlserver下载安装图文
  • 《计算机网络》实验报告四 TCP协议分析
  • 0719代码调试记录
  • IsaacLab学习记录(四)
  • Milvus Dify 学习笔记
  • 题单【循环结构】
  • 基于单片机出租车计价器设计