一、XAML简介
XAML使得界面设计和后台代码分开,类同MVC。XAML是按照XML格式书写的,所以要注意。一篇XAML就是一棵对象树,可以理解里面所有的元素就是一个对象。
二、XAML应用
XAML应用很广泛,使用地方不同,主要有:WPF XAML、XPS XAML、Silverlight XAML、WF XAML
三、XMAL编译
XAML 出于速度提升的问题,编译成二进制的BAML使用。
四、XAML名称空间
XAMl核心的是
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x=http://schemas.microsoft.com/winfx/2006/xaml
详细参考:http://www.cnblogs.com/jv9/archive/2012/05/28/2520731.html
主要要记录的是这个XAML名称空间与.NET名称空间是不一一对应的。按道理是应该的。但为了将文档变得简单,使用几个名称空间就可以,这些XAML名称空间就合成了所有的.NET名称空间,利用XAML解析器自动找到对应的类。
五、XAML类型转换器和复杂属性
类型转换器:Backgroud="Green" //创建一个Green对象赋值给Background属性,该对象无法具体设置
复杂属性:<grid1.Backgroud>.......</gird.Background> //这样可以在里面增加Green对象的一些复杂属性。
六、特殊字符与空白字符
特殊字符使用实体,空白加xml:space="preserve" 属性保留的含义
七、XAML的使用
建立WPF程序有三种方式:
1、没有XAML:直接后台调用类实例化添加即可
2、有未编译过的XAML:使用
FileStream s = new FileStream("wpf.xml",File.Open);
DependencyObject rootElement=(DepencyObject)XamlReader.Load(s);; //使用XamlReader加载其文件流
this.Content=rootElment; //设置this.Content属性
Button button1=(Button)LogicalTreeHelper.FindLogicalNode(rootElment,"buttton1"); //LogicalTreeHelper提取控件
button1.Click+=button1_Click;
3、编译过的XAML(BAML):使用对应语言编译器xamlc.exe编译XAML。之后会自动在obj\Debug文件夹创建一个对应后台类。里面有生成对应的控件。