8. 控件的介绍

发布时间 2024-01-11 14:09:17作者: x_amos

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族

包含的控件:

BUttonButtonBaseCheckBoxComboBoxItemContentControlFrameGridViewColumnHeaderGroupItemLabelListBoxItemListViewItemNavigationWindowRadioButtonRepeatButtonScrollViewerStatusBarItemToggleButtonToolTipUserControlWindow

特点:
1.都是 ContentControl 的子类
2.都是控件
3.内容属性都是Content
4.只能由单一元素充当内容

HeaderedContentControl族

包含的控件:

ExpanderGroupBoxHeaderedContentControlTabItem

特点:
1.都是 HeaderedContentControl 的子类,HeaderedContentControl是ContentControl的子类
2.都是控件,除了一个内容区域还有一个显示标题的区域
3.内容属性是 Content 和 Header
4.Content 和 Header都只能由单一元素充当内容

ItemsControl 族

包含的控件:

MenuMenuBaseContextMenuComboBoxItemsControlListBoxLiatViewTabControlTreeViewSelectorStatusBar

特点:
1.都是 ItemsControl  的子类
2.都是控件,用于显示列表化的数据
3.内容属性是 Items 或 ItemsSource
4.每种 ItemControl 都对应有自己的条目容器 (Item Container)

HeaderItemsControl 族

包含的控件:

MenuItemToolBarTreeViewItem

特点:
1.都是 HeaderItemsControl 的子类
2.都是控件,用于显示列表化的数据,并可以显示一个标题
3.内容属性是 Items 、ItemsSource 和 Header
4.每种 ItemControl 都对应有自己的条目容器 (Item Container)

Decorator 族

包含的控件:

ButtonChromeClassBorderDecoratorListBoxChromeSystemDropShadowChromeBorderInkPresenterBulletDecoratorViewBoxAdornerDecorator

特点:
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 族

包含的控件:

CanvasDockPanelGridTabPanelToolBarOverflowPanelStackPanelToolBarPanelUniformGridVirtualizingPanelVirtualizingStackPanelWrapPanel

特点:
1.都是 Panel子类
2.主要是用于 UI 布局
3.内容属性为 Children
4.内容可以是多个元素,Panel 元素将控制它们的布局

WPF学习目录