视频讲解 第3章〓宝剑锋从磨砺出〓梅花香自苦寒来——MAUI开发理论 3.1XAML可扩展的应用程序标记语言 3.1.1XAML概述 XAML(eXtensible Application Markup Language)是基于XML的可扩展应用程序标记语言。XAML具有跨语言、跨平台、层次化、可读性的特点,是一种声明式的、具有层次结构的标记性语言,主要用于界面设计。XAML组件包括*.xaml 界面文件和 *.xaml.cs代码文件。这样做的好处是将界面设计和业务逻辑相分离,实现界面与逻辑的解耦,提升可维护性、可理解性、可测试性。XAML能够方便地实现数据绑定机制,实现MVVM设计模式。Visual Studio能够支持XAML热重载,实时修改界面代码后,调试过程无须重启,能够在UI上形成快速迭代,提升工作效率。Visual Studio还能够支持XAML可视化,提供XAML可视化树,使用属性视图能够方便地对属性进行编辑操作。目前,.NET MAUI应用程序中没有针对XAML的视觉设计器。 XAML由以下元素组成。 声明。XAML文件根节点属性。包括XAML命名空间引用声明、XAML动态库引用声明、XAML类引用声明、XAML标记声明。 对象。基于XAML描述,可创建、可实例化。包括容器、控件、资源。 资源。与对象关联的存储或定义,具有统一定义数据、样式或行为的功效。包括数据资源、样式资源、模板资源。 属性。定义控件的数据、外观或行为。包括普通属性、内容属性、附加属性。 模板。定义控件的整体效果,具有复用性。 触发器。能够根据事件或属性变化更改控件外观。 动画。提供渐变性、交互性、动态性效果。 标记扩展。自定义组件、控件,扩充标记。 3.1.2XAML基本语法 XAML是标准的XML,但是还包括自身的一些特性,如普通属性、内容属性、附加属性和标记扩展。 Visual Studio新建.NET MAUI XAML文件的方法是,在项目中选择文件夹后,右击,从弹出的快捷菜单中选择“菜单项添加”→“类”命令,然后选择.NET MAUI ContentPage(XAML)模板,如图31所示,并输入文件名。这样在选中的文件夹下面自动生成XAML文件和XAML文件相对应的类文件。XAML文件相对应的类文件默认是隐藏的,需要在Visual Studio中展开才能看到。 图31新建.NET MAUI ContentPage(XAML) 【例31】XAML基本语法。 NewPage1.xaml代码如下: 1 2 6 7 12 首行和普通XML一样,声明了XML文件的版本号和编码方式。ContentPage是内容页面,对应的属性含义详见3.1.4节内容。内容部分定义了VerticalStackLayout(垂直布局)。内部包括Label(标签)控件,具有Text(文本)属性,属性值显示Welcome to.NET MAUI!,VerticalOptions 垂直对齐方式属性是Center(居中)显示和HorizontalOptions水平对齐方式属性也是Center显示。属性统一使用键值对的方式进行定义,中间使用赋值运算符,属性值使用双引号进行包裹。XAML中的标签可以采用单标签或双标签的形式。 NewPage1.xaml.cs代码如下: 1namespace MAUIDemo.Pages; 2 3public partial class NewPage1 : ContentPage 4{ 5public NewPage1() 6{ 7InitializeComponent(); 8} 9} NewPage1.xaml.cs是NewPage1.xaml 对应的代码文件。NewPage1类继承ContentPage类,属于分部类。构造方法调用InitializeComponent()完成界面控件初始化操作。命名空间与XAML文件中 x:Class相对应。 3.1.3XAML标记扩展 XAML标记扩展的目的是提升扩展性和灵活性。下面直接引入示例展示XAML标记扩展的各种使用方式。 【例32】XAML标记扩展。 1 2