Xamarin XAML语言教程XAML文件结构与解析XAML

XAML文件结构

在上文中,我们创建XAML文件后,会看到类似图1.16所示的结构

图1.16  结构

其中,.xaml文件和.xaml.cs文件就是XAML文件的结构。以下就是对这两个文件的介绍。

.xaml文件中包含的就是XAML代码,实际上就是XML语法。官方的说法:它是一个声明对象的语言,为我们创建对象提供便捷的一种方式。与HTML类似,特点是用来描述用户接口 (UI)内容。

通常我们把与.xaml文件关联的.xaml.cs文件叫作代码隐藏文件。如果开发者引用.xaml中的任何一个事件(如Button的Click 事件),,将在这个文件中编写对应的事件处理代码。

解析XAML

在上文中我们创建XAML文件后,会看到类似以下3种代码。

(1)第一种是使用Visual Studio创建项目后创建XAML文件显示的XAML代码:

xmlns:x=""

x:Class="Hello.XAMLPage">

(2)第二种是使用Xamarin Studio创建项目后创建XAML文件显示的XAML代码:

xmlns:x=""

x:Class="Hello.MyPage">

(3)第三种是在创建项目的同时创建XAML文件显示的代码:

xmlns:x=""

xmlns:local="clr-namespace:Hello"

x:Class="Hello.MainPage">

VerticalOptions="Center"

HorizontalOptions="Center" />

这3种文件代码的公共部分为如下:

xmlns:x=""

x:Class="Hello.MainPage">

以下就是对XAML公共默认的部分进行说明。

第一行是对XML简单的说明,其中包含了XML版本号以及编码格式。

第二行代码至最后一行代码的功能是构建界面所需要的内容。其中,第二行和第三行使用两个XML命名空间(xmlns)声明引用了URL。开发者不需要知道这些URL指向的具体内容。他们只是Xamarin和Microsoft拥有的URL,它们基本上充当版本标识符。第一个XML命名空间声明意味着在XAML文件中定义了没有前缀的标签,它引用Xamarin.Forms中的类,如ContentPage。第二个命名空间声明定义了x的前缀,它用于XAML本身固有的几个元素和属性,(理论上)由XAML的所有实现支持。

注意:这些元素和属性根据嵌入在URL中的年份略有不同。Xamarin.Forms支持2009 XAML规范,但不是所有的。

第四行代码。在声明x前缀之后,该前缀立即用于名为Class的属性,这是因为使用这个x前缀在XAML文件中非常普遍。例如,Class简称为x:Class。x:Class指定.NET类名称。

注意:x:Class属性只能出现在XAML文件的根元素中,以定义派生的C#类。

对于x:Class指定类的定义,开发者可以在.xaml.cs文件中看到,代码类似于以下代码:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using Xamarin.Forms;

namespace Hello

{

public partial class MainPage : ContentPage

{

public MainPage()

{

InitializeComponent();

}

}

}

注意:x:Class的值所指示的类型在声明的时候必须使用partial关键字。这样由XAML解析成的类和.xaml.cs文件里定义的部分就合二为一了。正是由于这种partial机制,我们可以把类的逻辑代码留在.xaml.cs文件中,并用C#语言来实现,而把那些于声明及布局UI元素相关的代码分离出来,实现UI以逻辑分离。

c# xaml语言教程,Xamarin XAML语言教程XAML文件结构与解析XAML相关推荐

  1. Xamarin XAML语言教程XAML文件结构与解析XAML

    Xamarin XAML语言教程XAML文件结构与解析XAML XAML文件结构 在上文中,我们创建XAML文件后,会看到类似图1.16所示的结构 图1.16  结构 其中,.xaml文件和.xaml ...

  2. Xamarin XAML语言教程Xamarin.Forms中构建进度条

    Xamarin XAML语言教程Xamarin.Forms中构建进度条 ProgressBar被称为进度条,它类似于没有滑块的滑块控件.进度条总是水平放置的.本节将讲解如何使用进度条. 注意:进度条在 ...

  3. Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色

    Xamarin XAML语言教程Xamarin.Forms中改变活动指示器颜色 在图12.10~12.12中我们会看到在各个平台下活动指示器的颜色是不一样的.Android的活动指示器默认是深粉色的: ...

  4. Xamarin XAML语言教程Xamarin.Forms中程序状态与进度(一)

    Xamarin XAML语言教程Xamarin.Forms中程序状态与进度(一) 在Xamarin.Forms中,提供了两个控件用来指示程序的状态和进度.他们分别为活动指示器和进度条.其中,活动指示器 ...

  5. 使用Keil语言的嵌入式C编程教程(下)

    使用Keil语言的嵌入式C编程教程(下) 用8051单片机进行定时器/计数器的计算与编程 延迟是应用软件开发中的重要因素之一.然而,在实现定时延迟的过程中,正常的延迟并不能给出克服这一问题的宝贵结果. ...

  6. 使用Keil语言的嵌入式C编程教程(上)

    使用Keil语言的嵌入式C编程教程(上) Embedded C Programming Tutorial with Keil Language Embedded System 嵌入式系统是指以单片机为 ...

  7. java语言环境变量_JAVA语言环境变量的设置教程

    本文主要向大家介绍了JAVA语言环境变量的设置教程,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. 安装JDK到目录,我这里是C:\Java 右键点击计算机属性 在系统变量里面建 JA ...

  8. 学单片机需要多少C语言基础,C语言单片机编程教程

    很多学员和朋友经常找我给他们推荐C语言的书,他们可能想和我当年一样,闷头大干一场,学个几个月的C语言,把C语言吃透,再开始单片机程序开发! 别!别!别! 大家千万别这么干,我当年自学了3个月的C语言, ...

  9. VML编程之------VML语言入门《VML极道教程》原著:沐缘华

    <VML极道教程>原著:沐缘华 1章4节:VML语言入门 1:VML语言入门 - 极道学法 在我正式开始讲解.你正式开始学习VML语言以前,请务必遵循以下规则,可以达到最佳效果.极道学习方 ...

  10. 【剑仙教程】易语言的结构体。自定义数据类型。

    1楼. [剑仙教程]易语言的结构体.自定义数据类型. 在易语言中,有基本数据类型,自定义数据类型. 自定义数据类型,在C语言/C++中称为结构体.这是面向对象和类的编程. . . 先上代码.打开易语言 ...

最新文章

  1. 深入了解Mvc路由系统
  2. 5G时代下,AI赋能行业的思考
  3. Hive在linux上的部署
  4. Mysql数据库从本地导出 服务器上导入时报 ERROR 2005 HY000 Unknown MySQL ser
  5. Mysql学习总结(74)——慢SQL!压垮团队的最后一根稻草!
  6. Sharding-Proxy简介_原理_安装_Sharding-Sphere,Sharding-JDBC分布式_分库分表工作笔记018
  7. jq ajax购物车,jquery制作的移动端购物车效果完整示例
  8. Spring中的@DependsOn注解
  9. python写连点脚本_python鼠标连点器-测试版
  10. 菜鸟笔记——html整理
  11. oracle连续周数,oracle周数计算
  12. Exercise_1
  13. USYD悉尼大学INFO1110 Oral Exam口语考试复习资料
  14. 精简指令集(RISC)和复杂指令集(CISC)的区别
  15. 代码统计工具实测点评
  16. 反恐精英枪王对决 服务器维护6,反恐精英之枪王对决
  17. 盘点:2012年微博引爆的十大热点(组图)
  18. BI驾驶舱是什么?BI管理驾驶舱主要内容及特点
  19. Patching more than once will result in the union of all True param eters being patched monkey.pat
  20. 史上最烂的开发项目长啥样:苦撑12年,600多万行代码...

热门文章

  1. Elasticsearch:使用 Python 进行 Bulk insert 及 Scan
  2. GBDT算法原理以及实例理解
  3. Axure RP9教程 入门讲解
  4. 啦啦外卖商家端APP打包
  5. http权威指南(一)-Http概述
  6. matplotlib显示任意中文字体(不限SimHei)
  7. 姿态估计之Yaw Pitch Roll
  8. 【Y9000x】单硬盘UEFI+GPT基于Win10安装Ubuntu18.04
  9. PCL:RANSAC 空间直线拟合
  10. 直播软件|IPTV直播软件|电视直播|TVPlayer-IPTV-EasyPlayer|友窝直播|超级直播软件定制开发