Silverlight 2完美征程
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 控件模型概述

Silverlight 2内置的控件支持丰富的控件模板模型。

Silverlight 2中所有的控件类都是FrameworkElement的子类,根据控件的派生关系不同,可以把它们分为如下几类。

面板控件:这类控件由Panel类派生,如Canvas、Grid控件等。

内容控件:这类控件由ContentControl类派生,提供了Content属性,用于定制控件的内容,如Button控件等。

列表控件:这类控件由ItemsControl类派生,经常用于显示数据的集合,如ComboBox、ListBox控件等。

普通控件:它们直接派生于Control类,自定义控件时也经常会从Control类派生,如TextBox、PasswordTextBox控件等。

其他控件:这类控件并不由Control类派生,而是直接派生于FrameworkElement类,如Image控件等。

它们之间的派生关系如图2-1所示。

图2-1

Silverlight提供了可执行许多功能的客户端控件,可通过比较控件的功能来为您的方案选择合适的控件。根据控件功能的不同,它们又可以划分为如下几类。

命令控件:响应来自鼠标、键盘、手写笔或其他输入设备的用户输入,并引发Click事件,如Button、HyperlinkButton控件等。

文本编辑控件:提供用于编辑或显示文本的控件,如TextBox、PasswordBox控件。

选择控件:使用户可以从多个预设置的值集合中选择一项或多项,如CheckBox、RadioButton控件等。

列表控件:用于展示列表集合或让用户从列表集合中选择。

日期控件:可用于显示或供用户选择日期,包括Calendar、DatePicker控件。

信息显示控件:用于显示少量的文字信息或报告当前操作的进度,如TextBlock、ProgressBar控件。

数据显示控件:以表格的形式显示数据集合,只有DataGrid控件支持此功能。

多媒体控件:用于显示图像、承载音频或视频,如Image、MediaElement控件等。

布局控件:用于对界面元素进行定位和布局,如Canvas、Grid控件等。

所有控件的功能虽然不同,但是Silverlight在设计之初,就考虑了控件模型的一致性,这样便于我们在各个不同的控件之间执行一些相似的任务,包括:

创建控件的实例

使用属性更改单个控件的外观

使用样式更改多个控件的外观

使用模板为控件创建自定义外观

处理控件事件

下面将按照控件的不同功能,详细介绍它们的使用方法,其中部分控件会放到本书后面的章节中介绍。