在XAML文件中的属性使用各种可能的语法设定对象属性的内容,根据对象属性的不同特征,所使用的语法也不同。
通过设置属性的值,可以给对象元素添加功能,一个对象的基本对象实例的初始状态是有默认的构造器的行为决定的,通常情况下,应用程序会使用一些不是完全由默认构造器生成的对象实例。
Attribute语法
在XAML中,属性(properties)经常被写成Attributes,Attributes是最具流线型的属性设定语法,并且对于有标记语言开发经验的开发者来说也是最直观的语法,例如下面的例子中创建了一个具有红色文字和蓝色背景的按钮,并且在按钮上显示Content属性所指定的内容。
<Button Background="Blue" Foreground="Red" Content="This is a button"/>
Property Element语法
对于一些对象元素的属性,Attribute语法是可能满足要求的,因为提供给属性的对象或信息值不能够简单用一个字符串来表达,在这种情况下,可以使用Property Element语法,这种语法使用标记的内容来设定所引用的包含元素的属性。通常,内容是作为属性值的类型对象,它语法是<TypeName.Property>...</TypeName.Property>.
...代表设定给属性的内容,内容设定后,必须使用闭合标记关闭属性元素(用</TypeName.property>)。
对于上述两种语法都支持的属性,通常这两种方法虽然在空格处理方面有一些细微的差别,但是最终结果都是一样的。如果有可能使用Attribute语法,那就尽量使用这种语法,因为这样语法更加方便,并且使标记更加简练,但这只是一种更好的样式,而不是技术上的限制。下面的例子和前面的例子一样对按钮的属性进行了设定,但是这次使用的是Property Element语法
<Button>
<Button.Background>
<SolidColorBrush Color="Blue"/>
</Button.Background>
<Button.Foreground>
<SolidColorBrush Color="Red"/>
</Button.Foreground>
<Button.Content>
This is a button
</Button.Content>
</Button>
Property Element语法与基本的XML语法解释重大的区别,对于XML,<TypeName.Property>表示另外一个元素,TypeName和Property之间没有隐含着父子关系,但是在XAML中,Property直接隐含为TypeName的属性(属性值由标记的内容来设定),而绝不会是一个名称相似,只有碰巧在名称中多了一个点的另外一个元素。