WPF的控件分为6类:布局控件:是可以容纳多个控件或者嵌套其他布局的控件。Grid、StackPanel、DockPanel等控件都属此类,它们拥有共同的父类为Panel。内容控件: 只能容纳一个控件或者布局控件作为他的内容。带标题的内容控件:相当于一个内容控件,但是可以加一个标题(Header),标题 部分 亦可容纳一个控件或者布局:
条目控件:可以显示一列数据,一般情况下这列数据的类型是相同的。此类控件在显示集合 类型数据方面功能比较强大。
带标题条目控件:相当于一个条目控件加上一个标题显示区。
特殊内容控件:比如TextBox容纳的是字符串、TextBlock可以容纳可自由控制格式 的文 本、Image容纳图片类型数据等。这类控件相对比较独立,但也比较常用。
我们把符合某类内容模型的UI元素称为一个族,每个族用它们共同基类来命名。
1、 ContentControl族
- 均派生自ContentControl类。
- 它们都是控件(Control)。
- 内容属性的名称为Content。
- 只能由单一元素充当其内容。
2、 HeaderedContentControl族
- 它们都派生自HeaderedContentControl类,HeaderedContentControl是ContentControl 类的 派生类。
- 它们都是控件,用于显示带标题的数据。
- 除了用于显示主体内容的区域外,控件还具有一个显示标题(Header)的区域。
- 内容属性为Content和Header。
- 无论是Content还是Header都只是容纳一个元素作为其内容。
3、 ItemsControl族
- 均派生子ItemsControl类。
- 它们都是控件,用于显示列表化的数据。
- 内容属性为Items或ItemsSource。
- 每种ItemsControl都对应有自己的条目容器(Item Container)。
4、 HeaderedItemsControl族
本族控件除了具有ItemsControl的特性外,还具显示标题的能力。元素特点如下:
- 均派生自HeaderedItemsControl类。
- 它们都是控件,用于显示列表化的数据,同时可以显示一个标题。
- 内容属性为Items、ItemsSource和Header。
本族控件只有3个:MenuItem、 TreeViewItem、ToolBar。
5、 Decorator族
本族中的元素是在UI上起装饰效果的。
- 均派生自Decorator类。
- 起UI装饰作用。
- 内容属性为Child。
- 只能由单一元素充当内容。
6、 TextBlock和TextBox
这两个控件最主要的功能是显示文本。TextBlock只能显示文本,不能编辑,所以又称静 态文 本。TextBox内容属性为Text。TextBlock内容属性是Inlines。
7、 Shape族元素
Shape族元素(它们只是简单的视觉元素,不是控件)就是专门用来在UI上绘制图形的一类元素。
- 均派生自Shape类。
- 用于2D图形绘制。
- 无内容属性。
- 使用Fill属性设置填充,使用Stroke属性设置边线
8、 Panel族元素
所有用于UI布局 的元素都属于这一族。 - 均派生自Panel抽象类。
- 主要功能是控制UI布局。
- 内容属性为Children。