【Xamarin.Forms】XAML命名空间——将XAML名称空间声明为引用类型

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

概观

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

点击(此处)折叠或打开

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

点击(此处)折叠或打开

  1. xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
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中引用类型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值