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

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.dtcms.com/a/290682.html

相关文章:

  • MYSQL:数据库约束
  • 【PTA数据结构 | C语言版】拓扑排序
  • 通信刚需小能手,devicenet转PROFINET网关兼容物流分拣自动化
  • 自动化计算机经过加固后有什么好处?
  • OpenAI API(2) OpenAI Responses API使用
  • 设备管理系统(MMS)如何在工厂MOM功能设计和系统落地
  • 深入解析 Linux 硬链接与软链接:原理、区别及应用场景
  • 龙虎榜——20250721
  • Linux中ELF区域与文件偏移量的关系
  • 【AI论文】EXAONE 4.0:融合非推理模式与推理模式的统一大语言模型
  • Neovim 安装与解压 tar.gz 文件
  • AXI接口学习
  • Python 模块未找到?这样解决“ModuleNotFoundError”
  • Dev C++下载安装和使用教程(图文并茂,保姆级教程)
  • dolphinscheduler中sqoop无法执行
  • 机器人工程专业本科阶段的学习分析(腾讯元宝)
  • Real-World Blur Dataset for Learning and Benchmarking Deblurring Algorithms
  • 系统分析师-计算机系统-操作系统-存储器管理设备管理
  • Oracle From查看弹性域设置
  • (3)Oracle基本语法与常用函数
  • Oracle自治事务——从问题到实践的深度解析
  • 基于MySQL实现分布式调度系统的选举算法
  • CLIP与SIGLIP对比浅析
  • RuoYi配置多数据源失效
  • vscode 使用说明二
  • 前端图像视频实时检测
  • AJAX 概念与 axios 使用
  • AI探索 | 基于 Node.js 开发 MCP 客户端+服务端及优秀项目分享
  • 【华为机试】240. 搜索二维矩阵 II
  • Node.js- node管理工具nvm