WPF控件分类
分类
布局控件:是可以容纳多个控件或者嵌套其他布局的控件。
内容控件:只能容纳多个控件或者嵌套其他布局的控件。
带标题内容控件:相当于一个内容控件,可以加一个标题,标题部分可容纳一个控件或者布局。
条目控件:可以显示一列数据,一般情况下这列数据的类型是相同的。
带标题条目控件:相当于一个条目控件加上一个标题显示区。
特殊内容控件:这类控件相对比较独立,也比较常用。
把控件想象成一个容器,容器里装的东西就是它的内容。控件的内容可以直接 是数据,也可以是控件。当控件的内容还是控件的时候就形成了控件的嵌套被。嵌套的控件称为子级控件,这种控件嵌套在UI布局时尤为常见。允许控件嵌套,所 以WPF的UI会形成一个树形结构。只观察由控件组成 的“树”,那么这棵树为逻辑树(LoicalTree);WPF控件往往是由更基本的控件构成的,即 控件本身就是一颗树,如果连控件本身的树也考虑在内,则这棵比逻辑树更“繁茂”的树称 为可视元素树(Visual Tree)。
控件是内存中的对象,控件的内容也是内存中的对象。控件通过自己的某个属性引 用着作为其内容的对象,这个属性称为内容属性(Content Property)。“内容属性”是个 统称,具体到每种控件上,内容属性都有自己确切的名字——有的直接就叫Content,有的 叫Child;有些控件的内容可以是集合
控件的内容就应该是标签的内容、 子级控件就应该是标签的子级元素(简称标签的元素)。
ContentControl族
均派生自ContentControl类,都是控件,内容属性的名称为Content,只能由单一元素充当其内容。
HeaderedContentControl族
都是控件,用于显示带标题的数据,除了用于主题内容的区域外,控件还具有一个显示标题的区域。
ItemsControl族
均派生自ItemsControl类,都是控件,用于显示列表化的数据。内容属性为Items或ItemsSource,每种ItemsControl都对应有自己的条目容器(Item Container)。
ItemsControl能够使用对应的Item Container自动包装数据,UI上 的列表会用于显示动态的后台数据,这时候我们交给ItemsControl的就是程序逻辑中的数 据而非控件了。
HeaderedItemsControl族
均派生自HeaderedItemsControl类,它们都是控件,用于显示列表化的数据,同时可以显示一个标题。HeaderedItemsControl族只有3个:MenuItem、 TreeViewItem和ToolBar。
Decorator族
以使用Border元素为一些组织在一起的内 容加个边框。如果需要组织在一起的内容能够自由缩放。Decorator族的元素是在UI上起到装饰效果。只能由单一元素充当内容。
Shape族元素
专门用来在UI上绘制图形的一类元素,这类元素没有自己的内容。用于2D图形绘制,无内容属性,使用Fill属性设置填充,使用Stoke属性设置边线。
Panel族元素
Panel族元素放在最后是因为这一族控件实在是太重要了——所有用于UI布 局的元素都属于这一族,内容可以是多个元素,Panel元素将控制它们的布局。