XAML提供了一种便于扩展和定位的语法来定义和程序逻辑分离的用户界面,而这种实现方式和ASP.NET中的"代码后置"模型非常类似。XAML是一种解析性的语言,尽管它也可以被编译。它的优点是简化编程式上的用户创建过程,应用时要添加代码等。
用文本编辑器打开一个XAML文件,会发现一个XAML文件只有一个元素作为根,这个根是应用程序整个运行时的对象图。在这个根下,可以采用3种方式来声明对象以构建一个有意义的XAML文件。接下来介绍一下XAML文件的结构和对象:
1.直接使用对象元素语法
如果objectName是一个需要实例化的类型名称,纳闷可以用如下代码创建对象:
- <objectName>
- </objectName>
一般一个对象还包括其他对象,那么可以这样表示:
- <objectName>
- <otherobjectName>
- </otherobjectName>
- </objectName>
为了方便,也可以省略成如下形式:
- <objectName>
- <otherobjectName/>
- </objectName>
2.使用属性语法设置属性
如果objectName是要实例化的对象,propertyName是要设置的属性名称,propertyValue是要设置的属性的值。那么应该使用的代码如下所示:
- <objectName propertyName="propertyValue".../>
或者:
- <objectName propertyName="propertyValue">
- ...<-element children-->
- </objectName>
3.标记扩展
标记扩展是一个XAML属性语法,采用花括号({和})表示标记扩展。此方法可以讲属性值不仅仅看做一段字符或者文本,分析器会调用适用该特定标记扩展的代码,从而在标记中构造对象。
这种方法被广泛用于数据绑定上,比如:
- <Grid x>:Name="LayoutRoot"Background="White">
- <ComboBox ItemsSource="{Binding ElementName=LayoutRoot}"/>
- </Grid>
以上代码将ComboBox的Itemssource属性的值绑定为Layoutroot。