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在设计之初,就考虑了控件模型的一致性,这样便于我们在各个不同的控件之间执行一些相似的任务,包括:
◆ 创建控件的实例
◆ 使用属性更改单个控件的外观
◆ 使用样式更改多个控件的外观
◆ 使用模板为控件创建自定义外观
◆ 处理控件事件
下面将按照控件的不同功能,详细介绍它们的使用方法,其中部分控件会放到本书后面的章节中介绍。