8. 控件的介绍
WPF学习目录
控件
是数据和行为的载体,没有固定的形象。
控件关注的是抽象的数据和行为。
常用的控件分为6类
1.布局控件:可容纳多个控件或嵌套其他布局控件,用于UI组织和排列控件,共同的父类为Panel。
2.内容控件:只能容纳一个其他控件或布局控件作为内容,经常需要使用布局控件来容纳其他内容。共同的父类为 ContentControl。
3.带标题的内容控件:可以加一个标题的内容控件,标题部分可容纳一个控件或者布局。共同父类为HeaderedContentControl。
4.条目控件:显示一列数据,一般情况下,这列数据的类型相同。共同的基类是 ItemsControl。
5.带标题的条目控件:可以加一个标题的条目控件,标题部分可容纳一个控件或者布局,用于显示层级关系数据。共同父类为 HeaderedItemsControl。
6.特殊内容控件:TextBox容纳字符串,TextBlock容纳可自由控制格式的文本,Image容纳图片类型的数据。
内容模型
UI 元素类型
| 名称 | 注释 |
|---|---|
| ContentControl | 单一内容控件 |
| HeaderedContentControl | 带标题的单一内容控件 |
| ItemsControl | 以条目集合为内容的控件 |
| HeaderedItemsControl | 带标题的以条目集合为内容的控件 |
| Decorator | 控件装饰元素 |
| Panel | 面板元素 |
| Adorner | 文字点缀元素 |
| Flow Text | 流式文本元素 |
| TextBox | 文本输入框 |
| TextBlock | 静态文字 |
| Shape | 图形元素 |
ContentControl族
包含的控件:
BUtton,ButtonBase,CheckBox,ComboBoxItem,ContentControl,Frame,GridViewColumnHeader,GroupItem,Label,ListBoxItem,ListViewItem,NavigationWindow,RadioButton,RepeatButton,ScrollViewer,StatusBarItem,ToggleButton,ToolTip,UserControl,Window
特点:
1.都是 ContentControl 的子类
2.都是控件
3.内容属性都是Content
4.只能由单一元素充当内容
HeaderedContentControl族
包含的控件:
Expander,GroupBox,HeaderedContentControl,TabItem
特点:
1.都是 HeaderedContentControl 的子类,HeaderedContentControl是ContentControl的子类
2.都是控件,除了一个内容区域还有一个显示标题的区域
3.内容属性是 Content 和 Header
4.Content 和 Header都只能由单一元素充当内容
ItemsControl 族
包含的控件:
Menu,MenuBase,ContextMenu,ComboBox,ItemsControl,ListBox,LiatView,TabControl,TreeView,Selector,StatusBar
特点:
1.都是 ItemsControl 的子类
2.都是控件,用于显示列表化的数据
3.内容属性是 Items 或 ItemsSource
4.每种 ItemControl 都对应有自己的条目容器 (Item Container)
HeaderItemsControl 族
包含的控件:
MenuItem,ToolBar,TreeViewItem
特点:
1.都是 HeaderItemsControl 的子类
2.都是控件,用于显示列表化的数据,并可以显示一个标题
3.内容属性是 Items 、ItemsSource 和 Header
4.每种 ItemControl 都对应有自己的条目容器 (Item Container)
Decorator 族
包含的控件:
ButtonChrome,ClassBorderDecorator,ListBoxChrome,SystemDropShadowChrome,Border,InkPresenter,BulletDecorator,ViewBox,AdornerDecorator
特点:
1.都是 Decorator 的子类
2.起 UI 装饰作用,如用 Border 为内容添加一个边框
3.内容属性是 Child
4.只能由单一元素充当内容
TextBlock 和 TextBox
均是显示文本。
TextBlock 只显示文本,不能编辑,但是格式控制灵活,内容属性为 Inlines,同时保留一个显示简单字符串的内容属性 Text
TextBox 则允许用户编辑内容,内容属性为Text
Shape 族
用来 UI 绘图的一类元素,没有自己的内容,可以使用 Fill 属性为它们设置填充效果
特点:
1.都是 Shape 的子类
2.用于 2D 图形绘制
3.无属性内容
4.使用 Fill 属性设置填充,使用 Stroke 属性设置边线
Panel 族
包含的控件:
Canvas,DockPanel,Grid,TabPanel,ToolBarOverflowPanel,StackPanel,ToolBarPanel,UniformGrid,VirtualizingPanel,VirtualizingStackPanel,WrapPanel
特点:
1.都是 Panel子类
2.主要是用于 UI 布局
3.内容属性为 Children
4.内容可以是多个元素,Panel 元素将控制它们的布局

浙公网安备 33010602011771号