Chinaunix首页 | 论坛 | 博客
  • 博客访问: 6658116
  • 博文数量: 915
  • 博客积分: 17977
  • 博客等级: 上将
  • 技术积分: 8846
  • 用 户 组: 普通用户
  • 注册时间: 2005-08-26 09:59
个人简介

一个好老好老的老程序员了。

文章分类

全部博文(915)

文章存档

2022年(9)

2021年(13)

2020年(10)

2019年(40)

2018年(88)

2017年(130)

2015年(5)

2014年(12)

2013年(41)

2012年(36)

2011年(272)

2010年(1)

2009年(53)

2008年(65)

2007年(47)

2006年(81)

2005年(12)

分类: Android平台

2017-12-03 14:14:24

XAML使用xmlns XML属性来进行名称空间声明。 本文将介绍XAML命名空间语法,并演示如何声明XAML命名空间以访问类型。

概观

有两个XAML名称空间声明总是在XAML文件的根元素中。 第一个定义了默认的命名空间,如下面的XAML代码示例所示:

点击(此处)折叠或打开

  1. xmlns=""
默认名称空间指定在XAML文件中定义的,没有前缀的元素引用Xamarin.Forms类,如ContentPage。
第二个名称空间声明使用x前缀,如下面的XAML代码示例所示:

点击(此处)折叠或打开

  1. xmlns:x=""
XAML使用前缀声明非默认名称空间,在引用名称空间内的类型时使用前缀。 x命名空间声明指定在XAML中使用前缀x定义的元素用于XAML固有的元素和属性(特别是2009 XAML规范)。
下表列出了Xamarin.Forms支持的x名称空间属性:



构造 描述
x:Arguments 指定非默认构造函数或工厂方法对象声明的构造函数参数。
x:Class 指定在XAML中定义的类的名称空间和类名。 类名称必须与代码隐藏文件的类名相匹配。 请注意,此构造只能出现在XAML文件的根元素中。
x:FactoryMethod 指定可用于初始化对象的工厂方法。
x:Key 为ResourceDictionary中的每个资源指定唯一的用户定义键。 该键的值用于检索XAML资源,通常用作StaticResource标记扩展的参数。
x:Name 指定XAML元素的运行时对象名称。 设置x:Name与在代码中声明变量类似。
x:TypeArguments 指定泛型类型的构造函数的泛型类型参数。

有关x:参数,x:FactoryMethod和x:TypeArguments属性的更多信息,请参阅在XAML中传递参数。
在XAML中,名称空间声明从父元素继承到子元素。 因此,在XAML文件的根元素中定义名称空间时,该文件中的所有元素都将继承该名称空间声明。


为类型声明命名空间

XAML中可以引用类型,方法是声明带有前缀的XAML名称空间,命名空间声明指定公共语言运行时(CLR)名称空间名称,也可以使用程序集名称。 这是通过在命名空间声明中为以下关键字定义值来实现的:

  • clr-namespace: 或者 using:包含要作为XAML元素公开的类型的程序集中声明的CLR名称空间。 此关键字是必需的。
  • assembly=包含引用的CLR名称空间的程序集。 该值是程序集的名称,不带文件扩展名。 程序集的路径应该在包含将引用程序集的XAML文件的项目文件中建立。 如果clr-namespace值与引用类型的应用程序代码位于相同的程序集中,则可以省略此关键字。

请注意,分隔clr-名称空间或从其值中使用标记的字符是冒号,而将汇编标记与其值相分离的字符是等号。 两个令牌之间使用的字符是分号。
下面的代码示例显示了一个XAML名称空间声明:

点击(此处)折叠或打开

  1. <ContentPage ... xmlns:local="clr-namespace:HelloWorld" ...>
  2.   ...
  3. </ContentPage>
或者,这可以写成:

点击(此处)折叠或打开

  1. <ContentPage ... xmlns:behaviors="clr-namespace:Behaviors;assembly=BehaviorsLibrary" ...>
  2.   ...
  3. </ContentPage>
本地前缀是用来表示名称空间内的类型对应用程序来说是本地的。 或者,如果类型位于不同的程序集中,程序集名称也应该在名称空间声明中定义,如下面的XAML代码示例所示:

点击(此处)折叠或打开

  1. <ContentPage ... xmlns:behaviors="clr-namespace:Behaviors;assembly=BehaviorsLibrary" ...>
  2.   ...
  3. </ContentPage>
然后在从导入的名称空间声明类型的实例时指定名称空间前缀,如下面的XAML代码示例所示:

点击(此处)折叠或打开

  1. <ListView ...>
  2.   <ListView.Behaviors>
  3.     <behaviors:EventToCommandBehavior EventName="ItemSelected" ... />
  4.   </ListView.Behaviors>
  5. </ListView>


概要

本文介绍了XAML命名空间语法,并演示了如何声明一个XAML命名空间以访问一个类型。 XAML为名称空间声明使用xmlns XML属性,并且可以通过声明带有前缀的XAML名称空间来在XAML中引用类型。

阅读(2597) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~