1.1 Decorator族
本族中的元素是在UI上起装饰效果的。如可以使用Border元素为一些组织在一起的内
容加个边框。如果需要组织在一起的内容能够自由缩放,则可使用ViewBox元素。
本族元素的特点如下:
均派生自Decorator类。
起UI装饰作用。
内容属性为Child。
只能由单一元素充当内容。
本族元素如表所示:
1.2 TextBlock和TextBox
这两个控件最主要的功能是显示文本。TextBlock只能显示文本,不能编辑,所以又
称静态文本。TextBox则运行用户编辑其中的内容。TextBlock虽然不能编辑内容,但可以
使用丰富的印刷级的格式控制标记显示专业的排版效果。
TextBox不需要太多的格式显示,所以它的内容是简单的字符串,内容属性为Text。
TextBlock由于需要操纵格式,所以内容属性是Inlines(印刷中的“行”),同时,
TextBlock也保留一个名为Text的属性,当简单地显示一个字符串时,可以使用这个属
性。
1.3 Shape族元素
友好的用户界面离不开各种图形的搭配,Shape族元素(它们只是简单的视觉元素,
不是控件)就是专门用来在UI上绘制图形的一类元素。这类元素没有自己的内容,我们
可以使用Fill属性为它们设置填充效果,还可以使用Stroke属性为它们设置边线的效果。
本族元素的特点如下:
均派生自Shape类。
用于2D图形绘制。
无内容属性。
使用Fill属性设置填充,使用Stroke属性设置边线。
1.4 Panel族元素
之所以把Panel族元素放在最后是因为这一族控件实在是太重要了——所有用于UI布
局的元素都属于这一族。
本族元素的特点如下:
均派生自Panel抽象类。
主要功能是控制UI布局。
内容属性为Children。
内容可以是多个元素,Panel元素将控制它们的布局。
对比ItemsControl和Panel元素,虽然内容都可以是多个元素,但ItemsControl强调以列
表的形式来展现数据而Panel则强调对包含的元素进行布局,所以ItemsControl的内容属
性是Items和ItemsSourse而Panel的内容属性名为Children。WPF框架中这种良好的命名
习惯非常值得我们学习。
本族元素如表所示: