XAMl使用其他命名空间中的类型及加载和编译
以前我们讲过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默认支持的开发方法。
- WPF使用其他命名空间中的类型
- WPF的xaml中导入其他命名空间以及绑定类属性数据
- 解决<fx:Style>样式设置中报错 必须使用命名空间限定 CSS 选择器“Alert”中的类型“Alert”
- paip.使用泛型时未能找到类型或命名空间名称“T
- [转]VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
- AspNetPager编译错误命名空间“Wuqi.Webdiyer”中不存在类型或命名空间名称“PageChangedEventArgs”
- 使用 .Net Framework 的 System.CodeDom 命名空间动态生成源代码并编译
- VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称 <转>
- 【草稿】.net 中已经引用了dll,但是编译报错找不到类型或者命名空间
- 分析器错误信息: 未能加载类型"命名空间.类"...
- PHP 使用命名空间(namespace),实现自动加载
- 分析器错误信息: 未能加载类型"命名空间.类"... ---小结
- VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
- VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
- 使用用户控件时,网站运行没有问题,但生成网站时却出错:命名空间“ASP”中不存在类型或命名空间名称“ascx_ub_weightbar_ascx” 的解决方法
- VS2010 项目引用了DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
- VS2012 项目引用了项目/DLL文件,也写了Using,但是编译时提示:未能找到类型或命名空间名称
- XamlReader使用注意点-命名空间
- thinkphp3.2开发排错一例——没有使用命名空间导致没有自动加载类进而导致Class not found
- 分析器错误信息: 未能加载类型"命名空间.类"... ---小结