控件时WPF里不可缺少的东西,在编程的时候我们可以对WPF使用上百个控件。有简单的当然也有复杂的,下面我们一起来了解一下吧。
简单控件是没有Content属性的控件,例如,Button类可以包含任意形状或任意元素,这对于简单控件时没有问题的。下面是一些简单控件和它们的功能
PasswordBox控件用于输入密码,这个控件有用于输入密码的专用属性,例如,PasswordChar属性定义了在用户输入密码时显示的字符,Password属性可以访问输入的密码。PasswordChanged事件在修改密码时立即调用。和MVC里面的<input type="password" />类似。
ScrollBar控件包含一个Thumb,用户可以从Thumb中选择一个值,例如,如果文档在屏幕中放不下,就可以使用滚动条。一些控件包含滚动条,如果内容过多,就显示滚动条。
使用ProgressBar控件,就是一个进度条,value属性表示进度,范围是0-100;
使用Slider控件,是一个滑动条,用户可以移动Thumb,选择一个范围值,ScrollBar、ProgressBar和Slider派生自同一个基类RangeBase,常用于音量控制,视频播放等
TextBox控件用于显示简单的去格式文本,简单来说就是一个文本框,文本框控件可以用来获取用户输入或显示文本。文本框可以用来编辑文本,也可以只读方式显示文本。但也可以显示多个行。通过Text属性可以获取或设置文本框的输入或显示的文本。
RichTextBox控件,是一个富文本框控件,和文本框相比,它能够处理有格式的文本,还可以显示字体、颜色、链接、嵌入的图像等。实际上,富文本框能够提供类似字处理应用程序的文本操作和显示功能,如赋值、剪切、粘贴、全选等
Calendar控件可以显示年份、月份或10年,用户可以选择一个日期或日期范围,和日历一样的。
DataPicke控件是一个日期选择控件,供用户选择日历。
ContentControl有Content属性,利用Content属性,可以给控件添加任意内容,因为Button类派生自基类ContentControl,所以可以在这个控件中添加任意内容。
1、ButtonRepeat、ButtonToggle、ButtonCheckBox、RadioButton:
Button、RepeatButton、ToggleButton和GridViewColumnHeader类派生自同一个基类ButtonBase。所有这些按钮都想赢Click事件。RepeatButton类会重复引发Click事件,直到释放按钮为止。ToggleButton是CheckBox和RadioButton的基类。这些按钮有开关状态。CheckBox可由用户选择和取消选择,RadioButton可以由用户选择。清除RadioButton的选择必须通过编程方式实现。
按钮控件允许用户通过单击来执行操作。每当用户单击按钮时,即可调用按钮的事先定义的Click事件处理程序。
另外按钮显示的文本可以通过其Content属性指定,按钮还可以使用Image属性显示图像。
单项按钮由RadioButton类实现。可以为用户提供由两个或多个互斥选项组成的选项集。多个单选框可以组成一个组,对于同一组内的所有单项按钮而言,用户一次只能选中一个单项按钮。
复选框控件,它可以用来指定某个条件是打开还是关闭的,就是我们经常使用的是/否,真/假选项。多个复选框也可以组合为一个组,用户可以选择组中的一个或多个复选框。
注:单项按钮和复选框最大区别在于在单项按钮组中,用户一次只能选择一个单选按钮,但是在复选框中,用户可以选择任意数量的复选框。
Label类表示控件的文本标签。这个类也支持放文件,如:菜单命令
From控件支持导航。使用Navigate()方法可以导航到一个页面内容上。如果该内容是一个页面,就使用WedBrowser控件来显示。
ListBoxItem是ListBox控件中的一项。
StatusBarItem是StatusBar控件中的一项。
ScrollViewer控件是一个包含滚动条的内容控件,可以吧任意内容放入这个控件中,滚动条会在需要时显示。
ToolTip创建一个弹出窗口哦,以显示控件的附加信息。
将UserControl类用作基类,可以为创建自定义控件提供一种简单方式。但是,基类UserControl不支持模板。
Window类可以创建窗口和对话框。使用这个类,会获得一个带有最小化/最大化/关闭按钮和系统菜单的框架。在显示对话框时,可以使用ShowDialog()方法,Show()方法打开一个窗口。如图所示:
类NavigationWindow派生自Window类,支持内容导航
带标题的内容控件派生自HeaderContentControl基类。HeaderContentControl类又派生自基类ContentControl。HeaderContentControl类的Header属性定义了标题的内容,HeaderTemplate实行可以对标题进行完全的定制。派生自基类HeaderContentControl的控件
使用Expander控件,可以创建一个带对话框的“高级”模式,它在默认情况下不显示所有的信息,只有用户展开它,才会显示更多的信息。在未展开模式下,只显示标题信息;在展开模式下显示内容,如图所示:
GroupBox控件提供了边框和标题来组合控件,如图所示:
TabItem控件是TabControl类中的项。TabItem的Header属性定义类标题的内容,这些内容用TabControl的标签显示。
ItemsControl类包含一个可以用Items属性访问的数据项列表。派生自ItemsControl的类。
Menu类和ContextMenu类派生自抽象基类MenuBase。把MenuItem元素放在数据项列表和相关联的命令中,就可以给用户提供菜单
Menu菜单如图所示:
StatusBar控件通常显示在应用程序的底部,为用户提供状态信息。可以把StatusBarItem元素放在StatusBar列表中
树形控件,要分层显示数据项,可以使用TreeView控件,使用TreeViewItems作为分层点
效果如图所示:
ListBox、ComboBox和TabControl都有相同的抽象基类Selector。这个基类可以从列表中选择数据项。
4.1、ListBox显示列表中的数据项,可以横着也可以竖着,能获取选中的值,可以用Separator做分隔符。
4.2、ComboBox有一个附带的Button控件,只有单击该按钮,才会显示数据项,是一个下拉框选项
4.3、在TabControl中内容可以排列为表格形式。Tab选项卡和对应容器。
DataGrid控件是显示数据的可定制网格,用于显示表格数据。
HeaderItemsControl是不仅包含数据项而且包含标题的控件的基类。HeaderItemsControl类派生自ItemsControl。
菜单类Menu和ContextMenu包含MenuItem类型的数据项。菜单项可以连接到命令上,因为MenuItem类实现了ICommandSource类型的数据项。
TreeViewItem类可以包含TreeVIewItem类型的数据项
ToolBor控件是一组控件,被称为工具栏(通常是Button和Separator元素)的容器。可以将ToolBar放在ToolBarTray中,它会重新排列ToolBar控件。
给单个元素添加修饰可以使用Decorator类完成。Decorator是一个基类,派生自它的类有Border、Viewbox和BulletDecorator。主题元素如ButtonChrome和ListBoxChrome也是修饰器。