2.4 属性元素
在第1章中提到过,富创作是WPF的亮点之一。这一点可以用图2-1中的简单Button来演示,因为你可以把任意内容放在里面,不仅限于文本!为了演示这一点,下面的代码嵌入了一个简单的方形来做一个VCR的停止按钮。
|
Button的Content属性是System.Object类型的,因此它很容易被设置到40×40的Rectangle对象。结果显示在图2-2中。

图2-2 用复杂内容更新WPF按钮
那非常简洁,但是你如何才能在XAML中用属性特性语法做相同的事呢?你该为Content属性设置哪种字符串才可以完成之前在C#中声明的Rectangle功能呢?没有这样的字符串,但是XAML提供了一种替代的(且更加详细的)语法来设置复杂的属性值,即属性元素。如下所示:

Content属性现在被设置为一个XML元素而不是XML特性,这与之前的C#代码是一样的。Button.Content中的句点可用于区分对象元素(object element)与属性元素(property element)。它们总是会以“类型名,属性名TypeName.PropertyName”的形式出现,总会包含在“类型名”对象元素中,但它们没有属于自己的特性。
属性元素语法也可以用于简单的属性值。下面的Button使用特性设置了两个属性,它们是Content和Background:
![]()
这等同于使用元素设置该Button的两个相同的属性:

当然,在任何可以使用特性的地方使用特性是手工输入XAML时很好的捷径。





