以前我们讲过XAMl命名空间。为了使便宜钱知道XAMl文档中元素对应的.NET类型,需要知道XAMl明档中指定特定的两个命名空间。XAML是一种实例化.NET对象的通用方法

,除了可以实例化一些标准的WPF UI对象之外,也可以实例化开发人员自定义的,不属于WPF命名空间.NET对象,或者是属于.NET框架中的其他命名空间中的对象。

为了在XAMl中使用在其他命名空间或程序集中定义的类型,可以使用如下语法:

  

<xmlns:d="clr-namespace:NameSpace;assembly=AssenblyName"

通常将命名空间映射的XAMl代码放在根元素中,最好是放在WPF和XAMl命名空间的后面。开发人员需要为d、namespace和assemblyname指定相应的信息,分别代表的意思

  d:用于指定希望在Xaml文档中使用的命名空间前缀,类似于XAMl命名空间使用的x:前缀,可以使用任意字符

  NameSpace:是完整的.NET命名空间的名字。

  AssemblyName:这是类型被定义的程序集名称,不用指定.dll扩展名,这个程序集必须被当前的WPF项目所引用。如果需要引用项目中的其他类,

通常可以省略这个程序集的名称。

  例如:.NET的类型是定义在System命名空间中,并且位于Mscorlib.dll程序集中,为了使用.NET CLR类型系统,可以是用如下的命名空间

<xmlns:sys=“clr-namespace:system;assembly=mscorlib”>

挡在XAMl文档的根元素中指定该命名空间的引用后,就可以在XAML文档中使用一些简单的.NET类型,比如stirng date int

<s:DateTime>2012-12-01</s:DateTime>

加载和编译XAML

  WPF和XAML是分离的。一个WPF应用程序可以没有XAMl文件,也可以只具有XAMl文件。在创建一个WPF应用程序时,可能会有如下3中类型的代码风格

    1.没有XAMl文件,只有代码的应用程序:类似于传统的Windows Form应用程序,通过程序代码来生生成用户界面。在Windows Form中,尽管vs可以通过设计窗口来可视化用户界面

在后台,vs将会自动生成用于实例化对象的代码

    2.代码和为编译的XAMl标记:在一些需要非常灵活和动态的用户界面来说,这是比较常用的一种方法,开发人员可以在运行时使用XamlReader类来加载一个为编译的XAMl XamlReader

类位于System.Windows.markup命名空间中。

    3.代码和已经译号的XAMl:以编译后的XAML又被称为BAML,通常以程序集资源的形式进行保存,这是vs 2012默认支持的开发方法。

  

XAMl使用其他命名空间中的类型及加载和编译的更多相关文章

  1. 未能在全局命名空间中找到类型或命名空间名称“Wuqi”

    下载了AspNetPager控件用以进行分页操作,在项目中放入控件后,运行报错:未能在全局命名空间中找到类型或命名空间名称“Wuqi” . 解决办法:在项目下拉框“引用“中添加AspNetPager引 ...

  2. PHP 使用命名空间(namespace),实现自动加载

    示例: #/DB/MySql.class.php也就是DB文件夹下有MySql.class.php文件 namespace DB; class MySql { public function __co ...

  3. 在Unity3D的网络游戏中实现资源动态加载

    用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载.比如想加载一个大场景的资源,不应该在游戏的开始让用户长时间等待全部资源的加载完毕.应该优先加载用户附近的场景资源,在游 ...

  4. Qt中如何 编写插件 加载插件 卸载插件

    Qt中如何 编写插件 加载插件 卸载插件是本文要介绍的内容.Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoade ...

  5. WP8.1开发中ListView控件加载图列表的简单使用(1)

    我也是刚接触WP编程没几个月,就是在这段时间一直闲着没事,然后又比较喜欢WP这款系统,就学习了WP这方面的开发言语,自学是很困难的,掌握这方面的资料不多,很初级,就是自己在网上找资料学习过程中,看到别 ...

  6. 移动设备的HTML页面中图片实现滚动加载

    如今移动互联网风靡全球,移动页面的元素也是丰富多彩,一个移动页面的图片超过10张已经是再正常不过的事情了.但是相对,很多移动用户还停留在2G,3G这样的网络中.那么这样带宽的用户,在浏览这样的页面时, ...

  7. (转)在Unity3D的网络游戏中实现资源动态加载

    原文:http://zijan.iteye.com/blog/911102 用Unity3D制作基于web的网络游戏,不可避免的会用到一个技术-资源动态加载.比如想加载一个大场景的资源,不应该在游戏的 ...

  8. EF如何操作内存中的数据以及加载相关联表的数据:延迟加载、贪婪加载、显示加载

    之前的EF Code First系列讲了那么多如何配置实体和数据库表的关系,显然配置只是辅助,使用EF操作数据库才是每天开发中都需要用的,这个系列讲讲如何使用EF操作数据库.老版本的EF主要是通过Ob ...

  9. imagesLoaded – 检测网页中的图片是否加载

    imagesLoaded 是一个用于来检测网页中的图片是否载入完成的 JavaScript 工具库.支持回调的获取图片加载的进度,还可以绑定自定义事件.可以结合 jQuery.RequireJS 使用 ...

随机推荐

  1. Maximum file handles allowed by OS

    Linux can open 1024 files concurrently by each process by default: http://m.blog.csdn.net/blog/keepe ...

  2. [BJ2006] 狼抓兔子

    题目链接:戳我 按理说以dinic\(O(M*N^2)\)的时间复杂度应该是过不去的(呃我也知道这个上界很松).但是最小割确实可以水过去?? 但是本着写正解的精神,我还是学了学平面图和对偶图,跑最短路 ...

  3. [转]解读Unity中的CG编写Shader系列9——镜面反射

    讨论完漫反射之后,接下来肯定就是镜面反射了在开始镜面反射shader的coding之前,要扩充一下前面提到的知识,加深理解镜面反射与漫反射的区别.注:这篇文章实现的镜面反射是逐顶点着色(per-ver ...

  4. luoguP3359 改造异或树

    https://www.luogu.org/problemnew/show/P3359 因为 a ^ b ^ b = a,所以我们预处理 1 到所有点的距离,将删边的操作反过来变成加边,对于每一个联通 ...

  5. vue element-ui 表格筛选,点击筛选数据

    <el-table-column prop="productEnvVersion" label="运行环境" :filters="this.ru ...

  6. PyQt5(3)——信号和槽初探

    信号和槽是QT的核心机制(当信号发射时,链接的槽函数会自动执行) 在pyqt5中信号和槽通过 QObject.signal.connect()链接. QObject类或子类(QWidget)派生的类都 ...

  7. js 正则表达式(reg)

    一.RegExp对象方法: 1.exec()   检索字符串中指定的值,并返回值(找不到返回null) 效果: <textarea name="content" id=&qu ...

  8. JVM理解

    在阅读本文之前,先向大家强烈推荐一下周志明的<深入理解Java虚拟机>这本书. 前些天面试了阿里的实习生,问到关于Dalvik虚拟机能不能执行class文件,我当时的回答是不能,但是它执行 ...

  9. mybatis的入门(一)

    一.mybatis的介绍 mybatis是Apache的一个开源项目ibatis,2010年这个项目由apache software foundation 迁移到了google code,并且改名为M ...

  10. JAVA数据结构--哈希表的实现(分离链接法)

    哈希表(散列)的定义 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构.也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度 ...