以前我们讲过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. SQLServer客户端连接工具(支持2000,20005,2008)

    绿色版本, 体积小(不到2M), 支持数据库版本2000 2005 2008 界面仿最经典的SQLServer2000: 下载地址:http://download.csdn.net/detail/gg ...

  2. Flash Builder 4.6/4.7 注释以及字体大小修改

    ①修改字体颜色.粗体.斜体.下划线 英文版:windows-preferences-flex-editors-syntex coloring-ActionScript-Comment 汉化版:窗口—首 ...

  3. Mysql表操作《一》表的增删改查

    一.表介绍 表相当于文件,表中的一条记录就相当于文件的一行内容,不同的是,表中的一条记录有对应的标题,称为表的字段 id,name,qq,age称为字段,其余的,一行内容称为一条记录 二.创建表 语法 ...

  4. codis__使用注意事项

    codis 不支持批量的命令, codis对 redis-server 的最低版本要求是 2.8.13

  5. 2.ajax+servlet实现注册时用户名验证

    效果: 精灵图(来源:从百度注册中download下来的): userVerify.jsp <%@ page language="java" contentType=&quo ...

  6. Docker安装Odoo实现快速迁移(四)

    一. 安装postgres数据库 root@ubuntu-:~# docker run -d -e POSTGRES_USER=odoo -e POSTGRES_PASSWORD=odoo --nam ...

  7. Django中的CSRF(跨站请求伪造)

    Django中的CSRF(跨站请求伪造) Django CSRF  什么是CSFR 即跨站请求伪装,就是通常所说的钓鱼网站. 钓鱼网站的页面和正经网站的页面对浏览器来说有什么区别? (页面是怎么来的? ...

  8. 动态树Link-cut tree(LCT)总结

    动态树是个好玩的东西 LCT题集 预备知识 Splay 树链剖分(好像关系并不大) 动态树(Link-cut tree) 先搬dalao博客 什么是LCT? 动态树是一类要求维护森林的连通性的题的总称 ...

  9. PIE SDK与OpenCV结合说明文档

    1.功能简介 OpenCV是基于BSD许可(开源)发行的跨平台计算机视觉库,可以运行在Linux.Windows.Android和Mac OS操作系统上.它轻量级而且高效——由一系列 C 函数和少量 ...

  10. 分分钟钟学会Python - 基础

    1.常见操作系统 1.windows xp/win7/win/10/window server 2.linux centos,图形化界面差 ubuntu,个人开发(图形化比较好) redhat,企业级 ...