日常使用最多的控件有6类:
1. 布局控件:可以容纳多个控件或嵌套其他布局控件,例如Grid、StackPanel、DockPanel等,有共同的父类Panel
2. 内容控件:只能容纳一个其他控件或布局控件作为它的内容,例如Window、Button等,有共同的父类ContentControl
3. 带标题内容控件:相当于一个内容控件,但是可以加一个标题,例如GroupBox、TabItem等,有共同的父类HeaderedContentControl
4.条目控件:可以显示一列数据,例如ListBox、ComboBox有共同的父类ItemsControl
5.带标题条目控件:相当于条目控件加一个标题,例如TreeViewItem、MenuItem,有共同的父类HeaderedItemsControl
6.特殊内容控件:相对比较独立,功能不同,例如TextBox、TextBlock、Image
控件的内容可以是数据,也可以是其他控件,如果不考虑控件内部的组成结构,只观察由控件组成的树,那么这棵树就成为逻辑树,如果连控件本身的树也考虑在内,那这棵树就是可视元素树
名称 | 注释 |
---|---|
ContentControl | 单一内容控件 |
HeaderedContentControl | 带标题的单一内容控件 |
ItemsControl | 以条目集合为内容的控件 |
HeaderedItemsControl | 带标题的以条目集合为内容的控件 |
Decorator | 控件装饰元素 |
Panel | 面板类元素 |
Adorner | 文字点缀元素 |
Flow Text | 流式文本元素 |
TextBox | 文本输入框 |
TextBlock | 静态文字 |
Shape | 图形元素 |
各类内容模型详解
1.ContentControl
本族元素特点如下:
1)均派生于ContentControl类
2)都是控件
3)内容属性名称为Content
4)只能由单一元素填充
Button ButtonBase CheckBox ComboBoxItem ContentControl Frame GridViewColumnHeader GroupItem Label ListBoxItem ListViewItem NavigationWindow RadioButton RepeatButton ScrollViewer StatusBarItem ToggleButton ToolTip UserControl Window 2.HeaderedContentControl
本族元素特点如下:
1)均派生于HeaderedContentControl类,HeaderedContentControl是ContentControl的派生类
2)都是控件
3)除了显示主体内容外,还具有一个显示标题的区域
4)内容属性为Content和Header
5)Content和Header都只能容纳一个元素
Expander GroupBox HeaderedContentControl TabItem 3.ItemsControl
本族元素特点如下:
1)均派生于ItemsControl类
2)都是控件
3)内容属性为Items或ItemsSource
4)每个ItemsControl都对应有自己的条目容器
Menu MenuBase ContextMenu ComboBox ItemsControl ListBox ListView TabControl TreeView Selector StatusBar 4.HeaderedItemsControl
本族元素特点如下:
1)均派生于HeaderedItemsControl类
2)都是控件
3)内容属性为Items、ItemsSource、Header
MenuItem TreeViewItem ToolBar
5.Decorator
本族元素特点如下:
1)均派生于Decorator类
2)起UI装饰作用
3)内容属性为Child
4)只能由单一元素充当内容
ButtonChrome ClassicBorderDecorator ListBoxChrome SystemDropShadowChrome Border InkPresenter BulletDecorator ViewBox AdornerDecorator 6.TextBlock和TextBox
TextBlock只能显示文本,不能编辑,所以又称静态文本,TextBox允许用户编辑,TextBlock虽然不能编辑,但可以使用丰富的印刷级格式控制标记显示专业的排版效果,TextBox的内容属性是Text,TextBlock的内容属性是Inlines,也保留了一个Text的内容属性,用于显示简单的字符串
7.Shape
本族元素特点如下:
1)均派生于Shape类
2)用于绘制2D图形
3)无内容属性
4)使用Fill属性填充,使用Stroke属性设置边线
8.Panel
本族元素特点如下:
1)均派生于Panel类
2)用于控制UI布局
3)内容属性为Children
4)内容可以是多个元素
Canvas DockPanel Grid TabPanel ToolBarOverflowPanel StackPanel ToolBarPanel UniformGrid VirtualizingPanel VirtualizingStackPanel WrapPanel