[备忘]Silverlight 库的前缀和映射

简介: 本主题介绍默认 Silverlight XAML 名称空间的概念,并说明当您在 XAML 中定义基于 Silverlight 的应用程序的各个部分时,为何可能需要为附加的 XAML 命名空间创建映射。
 

XAML 命名空间映射

Silverlight XAML 通常将默认的 XAML 命名空间用于 URI http://schemas.microsoft.com/winfx/2006/xaml/presentation。此 XAML 命名空间映射到在核心 Silverlight 程序集(例如,System.Windows)中定义的类型。然而,Silverlight 的 .NET Framework 类库还包括对于核心 Silverlight 程序集外部的程序集和类型的引用。此类类型可用在 Silverlight XAML 中,但使用它们要求您将 CLR 命名空间和程序集映射到一个前缀和一个 XAML 命名空间。通常,您在 XAML 页的根元素中实现这一点。然后,您在该页的其他 XAML 用法中使用该前缀来引用映射中的类型。有关更多信息,请参见 。Visual Studio XAML 编辑包括一项功能,当您定义新的 xmlns 值来帮助简化映射过程时,该功能显示一个下拉列表。

在 Silverlight 文档中找到的 XAML 用法以及 XAML 示例通常按照约定对 XAML 命名空间使用某些前缀字符串。Silverlight 文档中的 XAML 用法或 XAML 示例为了简化目的通常不显示根元素和映射,而是在用法中仅显示前缀。所需的按约定的前缀及其映射可以通过查找下一节中的表来确定。用于 Silverlight 文档中用于描述 XAML 语法的其他约定的更多信息,请参见

用法和示例中使用的前缀与建议的前缀(在 Silverlight SDK 客户端库程序集以及可能来自其他源的程序集中声明为程序集级别属性)相符,这些建议的前缀通常由开发工具推荐。

Silverlight 文档中显示的用于 Silverlight 库映射的前缀

Silverlight 默认 XAML 命名空间

从核心库中映射其他 XAML 命名空间

由 Silverlight 核心库定义的其他一些类型有时与 Silverlight 应用程序及其 XAML 用法相关,但在 System.Windows 程序集中并未定义这些类型。因此,默认 XAML 命名空间中不包含这些类型。若要从默认 XAML 命名空间之外使用类型,必须将一个前缀映射到 XAML 命名空间。对于其他核心库,这意味着您必须映射 XAML 命名空间以及 clr-namespaceassembly 组件,而不是引用 URI 样式的命名空间标识符。有关更多信息,请参见

Silverlight XAML 中常用的一组类型是与语言基元对应的 CLR 类型。例如, 是表示为一个字符串的 CLR 类型。这些类型在 CLR 命名空间和 mscorlib 程序集中定义。通常,将为此 XAML 命名空间映射声明前缀 sys:,并且该约定有时用在此文档或相关的 Silverlight 示例代码中。例如,xmlns:sys="clr-namespace:System;assembly=mscorlib" 是可以限定 XAML 用法(如 <sys:Int32>42</sys:Int32>)的映射。通常可以找到 XAML 用法的语言基元作为资源字典的组成部分,以便常用的基元值只在应用程序中的一个位置存在。有关更多信息,请参见

映射中的哪些类型可实际用于 XAML 中是一个单独的概念,本主题并未全面讨论此概念。通常,此类型必须为公共类型且必须支持默认的构造函数。有关更多信息,请参见 (适用于自定义类型的 XAML 用法的相同 CLR 规则也适用于核心库中的任何现有类)。

用于 SDK 客户端库的 XAML

截至 Silverlight 4,作为 Silverlight 客户端 SDK 的一部分分发的各种库全部共享一个公共 XAML 命名空间。该 XAML 命名空间的标识符是:

http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk

映射此 XAML 命名空间的典型前缀为 sdk:

如果您使用 Visual Studio 2010 的工具包和 Silverlight 可视化设计器,则可以将类型控件从 SDK 客户端库拖到设计图面上。如果这是第一次从该 XAML 页中使用 SDK 客户端类型,则 Visual Studio 2010 自动将一个 XAML 命名空间定义添加到根元素上的 XAML 中:

xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk"

http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk 包括来自以下程序集的类型和来自这些程序集的命名空间:

除了使用 Visual Studio 2010 的工具包和 Silverlight 可视化设计器之外,还可以手动为 http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk 定义自己的映射,并使用该 XAML 命名空间的映射来从您的 XAML 中引用 SDK 客户端类型。

如果您要使用 CLR 命名空间和 SDK 客户端库组合,而这一组合不是 http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk 的一部分,则必须专门映射该组合,如主题 中所述。

控件模板 XAML

Silverlight 工具包的 XAML

当目标为 Silverlight 版本 3 时用于 Silverlight SDK 程序集的 XAML

在 Silverlight 3 版本的 SDK 客户端程序集中,未定义 XAML 命名空间 http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk。相反,如果为程序集中的 CLR 命名空间创建特定的 XAML 命名空间映射,则程序集将声明建议的前缀。

如果您使用 Visual Studio 2010 的工具包和 Silverlight 可视化设计器,则可以将类型控件从 SDK 客户端库拖到设计图面上。如果这是第一次从该 XAML 页中使用 SDK 客户端库类型,则 Visual Studio 2010 自动将一个 XAML 命名空间定义添加到根元素上的 XAML 中:对于 Silverlight 3,这一 XAML 命名空间声明通过为控件的后备类型提供 CLR 命名空间和程序集来定义。客户端库中不同的程序集/CLR 命名空间组合具有不同前缀。例如,当将某个前缀引入到 XAML 时, 定义并使用一个 data: 前缀,而 定义并使用一个 controls: 前缀。

还可以在 XAML 中手动定义映射,并在 Visual Studio UI 中提升相同的前缀。有关手动定义 XAML 命名空间映射的更多信息,请参见

参考主题中显示的 XAML 用法中,只显示使用 sdk: 前缀和 http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk XAML 命名空间的 Silverlight 4 语法。然而,您可能会遇到 Silverlight 3 样式的 XAML 以及特定的 CLR 命名空间映射,甚至目标为 Silverlight 4 时也是如此。例如,默认的控件模板仍可能使用 Silverlight 3 样式的映射。

下表列出了由约定使用的 XAML 命名空间前缀及其映射,它们将由 Silverlight 3 的 SDK 客户端库中的程序集级别属性进行提升。

请参见

 

QQ:498977166

http://szw.cnblogs.com/
研究、探讨.NET开发
转载请注明出处和作者,谢谢!

 

微信开发深度解析:微信公众号、小程序高效开发秘籍
Senparc官方教程《微信开发深度解析:微信公众号、小程序高效开发秘籍》,耗时2年精心打造的微信开发权威教程,点击这里,购买正版

 

目录
相关文章
|
数据可视化 .NET 开发工具
|
XML 缓存 数据格式
Silverlight自定义类库实现应用程序缓存
默认情况下,如果SL项目引用了一些其它程序集(即通俗意义上的dll文件),在编译打包时,这些dll会全部打包到一个xap文件里,随着引用的dll文件越来越多,xap文件会越来越大。 这还不是最严重的问题,如果确实需要使用这些dll,大就大吧,要用它容量肯定就会增加。
856 0
|
内存技术
Silverlight初级教程-库
Silverlight初级教程 库 flash中有库这个概念。库里可以放很多的影片剪辑“MC”,一个MC可以在很多的地方使用,修改了库中的MC所有用到这个MC的地方都跟着改变。这个 在silverlight中又是以什么形式表现出来呢,怎么做一个元件在多个地方使用?在这里来简单的介绍一下silverlight中的“自定义用户控 件”。
626 0

热门文章

最新文章