控件可以根据它们所对应的继承关系分成 4 个不同的种类:

  • 内容控件
  • Items 控件
  • Range 控件
  • 文本和墨水控件

1. 内容控件

内容控件是只允许包含单一项(item)的简单控件。内容控件都继承自System.Windows.Controls.ContentControl,它们拥有只含有一项的Object 类型的Content 属性

WPF 自带的内容控件有3 大种类:

  • 按钮
  • 简单容器
  • 带头(header)的容器

1.1 按钮

按钮控件完全继承自 ButtonBase 类,这些控件是:

  • Button
  • RepeatButton, 会在按钮一直被按着的情况下触发点击事件
  • ToggleButton,

第1 次点击它的时候,IsChecked 属性会被设为true;再点击一次,就被设为了false.

ToggleButton 还有一个IsThreeState 属性,如果把它设为true 的话,IsChecked 就会有3 种值:true、false或者null。事实上,IsChecked 是Nullable<Boolean>类型的。第1 次点击ToggleButton 会把IsChecked 设为true,第2 次则把它设为null,第3 次把它设为false

  • CheckBox

它可以区分是被鼠标点击还是被键盘点击。它可以在被点击时记录选中(checked)或者未选中(unchecked)状态。它支持3 种状态模式,分别为选中(checked)、不确定(indeterminate)、未选中(unche- cked)。 
          CheckBox 和ToggleButton 只有外观上的差别!CheckBox除了在继承ToggleButton 时重写了控件默认样式以及视觉外观以外,其他都与ToggleButton 完全一样

  • RadioButton

RadioButton 是另一种从ToggleButton 继承过来的控件,但它的特殊在于支持互斥性。当多个RadioButton被放在一个组里,一次只有一个可以被选中

1.2 简单容器

  • Lable
  • ToolTip
  • Frame, 很像HTML的Frame, 需要指定一个Source

1.3 带头(header)的容器

  • GroupBox
  • Expander

2. Items控件

WPF 的另一种主要控件种类是Items 控件。Items 控件包含了一个拥有许多Item 的集合而不是只是一条内容。

2.1 选择器

选择器(selector)作为Items 控件,它的Item 不但可以被索引而且可以被选择。Selector 抽象类继承自ItemsControl,并添加了一些属性来处理选择

WPF 有4 种继承自Selector 的控件:

  • ComboBox
  • ListBox
  • ListView

ListView 从ListBox 继承而来,不管是从外观还是实际的操作上都很像ListBox. 增加了一个View属性,可以指定View为GridView类型

  • TabControl

2.2  菜单

  • Menu
  • ContextMenu

2.3 其它Items控件

  • TreeView
  • ToolBar
  • StatusBar

3. Range控件

Range 控件不会像内容控件或者Items 控件那样渲染任意内容,它们仅在一个指定的范围内存储并且显示数值。Range 控件的核心功能来自于一个叫作RangeBase 的抽象类。这个类定义了浮点数类型的属性来存储当前的值以及范围的端点:Value、Minimum 和Maximum。它还定义了一个简单的ValueChanged 事件

  • ProgessBar
  • Slider

4. 文本和墨水控件

WPF 包含了一些用来显示和编辑文字的控件

  • TextBox
  • RichTextBox
  • PasswordBox
  • InkCanvas
本文转自JustRun博客园博客,原文链接:http://www.cnblogs.com/JustRun1983/archive/2012/08/14/2638119.html,如需转载请自行联系原作者

WPF学习(3) – WPF控件相关推荐

  1. WPF学习:分页控件

      好多年没有发博了,今天闲暇,把给公司做的ERP分页控件拿出来,有很多都用到分页的,所以就封装了一个UserControl分页控件,效果还不错,可以看看,先! 注意:有用到存储过程. 如果还不明白, ...

  2. 在WPF中使用WinForm控件方法

    在WPF中使用WinForm控件方法 原文:在WPF中使用WinForm控件方法 1.      首先添加对如下两个dll文件的引用:WindowsFormsIntegration.dll,Syste ...

  3. Wpf使用Winform控件后Wpf元素被Winform控件遮盖问题的解决

    Wpf使用Winform控件后Wpf元素被Winform控件遮盖问题的解决 参考文章: (1)Wpf使用Winform控件后Wpf元素被Winform控件遮盖问题的解决 (2)https://www. ...

  4. WPF IP地址输入控件的实现

    WPF IP地址输入控件的实现 原文:WPF IP地址输入控件的实现 一.前言 WPF没有内置IP地址输入控件,因此我们需要通过自己定义实现. 我们先看一下IP地址输入控件有什么特性: 输满三个数字焦 ...

  5. WPF 绑定StaticResource到控件的方法

    WPF 绑定StaticResource到控件的方法 原文:WPF 绑定StaticResource到控件的方法 资源文件内的属性能否直接通过绑定应用到控件?答案是肯定的. 比如,我们要直接把下面的& ...

  6. WPF编程,将控件所呈现的内容保存成图像的一种方法。

    WPF编程,将控件所呈现的内容保存成图像的一种方法. 原文:WPF编程,将控件所呈现的内容保存成图像的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.ne ...

  7. WPF自定义日期时间控件

    WPF自定义日期时间控件 一.需求分析 二.功能实现 一.需求分析 在工作中遇到的项目中,大部分软件是处于全屏运行状态,这时候就需要在软件的界面上加上日期时间那些,方便用户查看当前时间. 二.功能实现 ...

  8. C# wpf 实现Canvas内控件拖动

    系列文章目录 第一章 Grid内控件拖动 第二章 Canvas内控件拖动(本章) 第三章 任意控件拖动 第四章 窗口拖动 第五章 附加属性实现任意拖动 文章目录 系列文章目录 前言 一.如何实现? 1 ...

  9. 如何在wpf中使用winform控件或者winform的自定义控件

    前言 在wpf中使用winform控件或者winform的自定义控件 一.添加引用 WindowsFormsIntegration.dll System.Windows.Forms.dll 提示:这两 ...

  10. WPF 实现蒙板控件

    WPF 实现蒙板控件 控件名:Mask 作   者:WPFDevelopersOrg - 驚鏵 原文链接[1]:https://github.com/WPFDevelopersOrg/WPFDevel ...

最新文章

  1. python 网络相关依赖库 dpkt、scapy、pcap 安装
  2. java中的表达式是指_Java 表达式,语句和代码块
  3. Oracle数据库之单行函数
  4. 电脑桌面锁屏怎么设置_华为手机总是莫名多出照片?这两个设置不关闭,内存再大也不够用...
  5. 经典mysql语句_经典MYSQL语句
  6. VTK:Points之ExtractSurfaceDemo
  7. Keil5 EventRecorder 的STDOUT输出丢包率较大现象
  8. 第一章 计算机网络 1 计网体系结构的概念和功能 [计算机网络笔记]
  9. a标签在ie6和ie7下面换行显示问题解析
  10. 后台管理系统、商品管理、商品发布、商品回收、订单管理、退款管理、运营管理、商城设置、导航分类、营销管理、优惠券套餐、数据统计、活跃用户、数据埋点、财务管理、对账单、财务数据、账户资产、电商后台
  11. 晓莲说-何不原创:如何通过jad把class批量反编译成java文件
  12. Originpro拟合Gompertz模型
  13. 室内红外线防盗报警器matlab,红外防盗报警系统毕业设计论文.doc
  14. 树莓派cm3+的i2c使用总结
  15. 扭蛋机html源码,微信小程序wxss制作扭蛋机
  16. 2021年第十二届蓝桥杯大赛软件赛决赛C/C++大学A组 个人部分题解
  17. FPGA零基础学习:数字通信中的电压标准
  18. mysql优化工具 MySQL Tuner
  19. Markdown 语法大全,常用功能集锦,有这一篇就够了
  20. 系统集成项目管理工程师教程考点精讲之风险的分类

热门文章

  1. 寻找中项和第k小元素c语言,分治法第k小元素poj2104.ppt
  2. DSP中两个延时函数的区别(转)
  3. 为什么饿着饿着就不饿了
  4. java ordered list_Java - JSON对象和ListOrderedMap问题
  5. PHP中几种b2b,用php开发 b2b 用什么架构?
  6. mysql数据库输出数据语法错误_获取RDS-Mysql数据语法错误
  7. win10 iot core java_Windows 10 IoT Core开发环境
  8. pytorch torch.eye
  9. 张一鸣批评的互联网“语言腐败”,危害到底有多大?
  10. Exchange Server 2016 独立部署/共存部署 (七)—— DAG功能测试