WPF的控件和内容模型

本文详细介绍了WPF中的控件分类,包括布局控件、内容控件、带标题内容控件、条目控件、带标题条目控件和特殊内容控件,并探讨了它们的共同基类和特点。此外,还解析了WPF的内容模型,如ContentControl、HeaderedContentControl、ItemsControl、HeaderedItemsControl、Decorator、TextBlock、TextBox、Shape和Panel族元素,阐述了各类元素的特性和应用场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、WPF 控件分类
---- 控件是咋们的门面,控件有很多,但是仔细去分析,也是有规律可循的,根据其作用,我们可以把控件分类,我们可以把控件分类,日常工作中我们打交道最多的控件无外乎6类:布局控件、内容控件、带标题内容控件、条目控件、带标题条目控件、特殊内容控件。
1、布局控件:是可以容纳多个控件或者嵌套其他布局的控件,用于在UI上组织和 排列控件。Grid、StackPanel、DockPanel等控件都属此类,它们拥有共同的父 类为Panel。
2、内容控件:只能容纳一个控件或者布局控件作为他的内容。Window、Button等 控件属于此类,因为只能容纳一个控件作为其内容,所以经常借助布局控件来 规划其内容。它们的共同父类是ContentControl。
3、带标题内容控件:相当于一个内容控件,但是可以加一个标题(Header),标 题部分亦可容纳一个控件或者布局,GroupBox、TabItem等是这类控件的典型 代表。它们的共同父类是HeaderedContentControl。
4、条目控件:可以显示一列数据,一般情况下这列数据的类型是相同的。此类控 件包括ListBox、ComboBox等。它们额共同基类是ItemsControl。此类控件在 显示集合类型数据方面功能比较强大。
5、带标题条目控件:相当于一个条目控件加上一个标题显示区。TreeViewItem、 MenuItem都属于此类控件。这类控件往往用于显示层级关系数据,结点显示在 其Header区域,子级结点则显示在其条目控件区域。此类控件的共同基类是 HeaderdeItemsControl。
6、特殊内容控件:比如TextBox容纳的是字符串、TextBlock可以容纳可自由控制格 式的文本、Image容纳图片类型数据等。这类控件相对比较独立,但也比较常用。
二、WPF的内容模型
---- 根据是否可以装载内容、能够装载什么样的内容,WPF的UI元素可以分为:
1、ContentControl 族
特点: (1) 均派生自ContentControl类。
(2) 它们都是控件(Control)。
(3) 内容属性的名称为Content。
(4) 只能由单一元素充当其内容。
2、HeaderedContentControl 族
特点:(1)它们都派生自HeaderedContentControl类,HeaderedContentControl是 ContentControl类的派生类。
(2)它们都是控件,用于显示带标题的数据。
(3)除了用于显示主体内容的区域外,控件还具有一个显示标题(Header)的区域。
(4)内容属性为Content和Header。
(5)无论是Content还是Header都只是容纳一个元素作为其内容。
3、ItemsControl 族
特点: (1) 均派生自ItemsControl类。
(2) 它们都是控件,用于显示列表化的数据。
(3) 内容属性为Items或ItemsSource。
(4) 每种ItemsControl都对应有自己的条目容器(Item Container)。
4、HeaderedItemsControl族
特点: (1) 均派生自HeaderedItemsControl类。
(2) 它们都是控件,用于显示列表化的数据,同时可以显示一个标题。
(3) 内容属性为Items、ItemsSource和Header。
5、Decorator族
特点:(1)均派生自Decorator类。
(2)起UI装饰作用。
(3)内容属性为Child。
(4)只能由单一元素充当内容
6、TextBlock和TextBox
---- 这两个控件最主要的功能是显示文本。TextBlock只能显示文本,不能编辑,所以又 称静态文本。TextBox则运行用户编辑其中的内容。TextBlock虽然不能编辑内容,但可以 使用丰富的印刷级的格式控制标记显示专业的排版效果。
7、Shape族元素
特点: (1)均派生自Shape类。
(2)用于2D图形绘制。
(3)无内容属性。
(4)使用Fill属性设置填充,使用Stroke属性设置边线。
8、Panel族元素
特点: (1)均派生自Panel抽象类。
(2)主要功能是控制UI布局。
(3)内容属性为Children。
(4)内容可以是多个元素,Panel元素将控制它们的布局。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值