1.命名空间xmlns
xmlns:x其只是MS的一个命名而已,没有任何特殊的意义
xmlns:local="clr-namespace:myNamespace" --每个XAML元素都是一个CLR类型,通过自定义的命名空间,可以使用命名空间里的类
xmlns:sys="clr-namespace:System;assembly=System"--通过这种方式,可以在XAML中使用几乎所有的DOTNET框架类
2.通常用的xaml元素
Root元素:Windows和Page是最常用的根元素。这些元素位于XAML文件的根元素,并包含其他元素。
Panel元素:帮助布置UI位置。常用的是StackPanel, DockPanel, Grid和Canvas。
Control元素:定义XAML文件的控件类型。允许添加控件并自定义。
Document元素:帮助实现文档提交。主要分为Inline和Block元素组,帮助设计的外观类似文档。一些有名的Inline元素有Bold,LineBreak, Italic。Block元素有Paragraph, List, Block, Figure和Table。
3.GDI、GDI+、Direct3D图形系统???
4.IValueConverter
WPF框架提供了一个IValueConverter接口,负责数据源到数据控件绑定时,自定义转换逻辑。使用它包括以下步骤:
1).创建一个只转换器类,实现该接口;
2).给该类加入ValueConversion属性,并制定源类型和目标类型;
3).实现该接口的两个方法,Convert()与ConvertBack()
4).按照1-3创建类之后,在数据绑定控件中,设定Converter为该类的一个实例;
http://blog.sina.com.cn/s/blog_4b0020f301014flr.html
5. WPF的事件处理是基于视觉树(Visual Tree)的,而非逻辑树(Logical Tree),而属性继承(Property Inheritance)以及资源查找(Resource Lookup)则是基于逻辑树的
6. 资源
在.NET中可以创建.resx和.resources文件。其中.resx由XML项组成。.resx只是一种中间格式,不能被应用程序直接使用,它必须用工具转换为.resource格式。
1)资源的有效范围:Application、Page和Window。顾名思义,在Application根元素下定义的资源将在当前整个应用程序中可见,都可以访问。在Page和Window中定义的元素只能在对应的Page和Window中才能访问
2)资源加载形式:Static和Dynamic
3)不管是Static资源还是Dynamic资源,所有的资源都需要设置Key属性:x:Key=”KeyName”。因为WPF中的资源没有资源ID,需要通过资源Key来标识以方便以后访问资源。
资源除了可以在XAML声明外,还可以通过代码进行访问控制。支持Resource属性的对象都可以通过FindResource、以及Resource.Add和Resource.Remove进行控制
7.异常
编写的XAML代码很可能有错误,此时XAML代码解析器通常会抛出称为XamlParseException的异常,通过initializecomponentd的try catch来捕捉或者通过debug->exceptions->system.windows.markup.xamlparseexception throw
WPF应用程序中的XAML代码是在InitializeComponent方法中解析的
wpf学习(二)