控件概述
Microsoft Expression Blend 提供了一个控件的扩充列表,通过这些控件可以为 Windows Presentation Foundation (WPF) 和 Silverlight 2 应用程序设计具有多种功能的用户界面。
说明: |
---|
有关 Microsoft Silverlight 1.0 项目中提供的控件的列表,请参阅 Silverlight 1.0 概述中的“控件”部分。 |
通过使用 Expression Blend,您能做到的远远超过仅仅使用默认控件或系统 WPF 控件,而是能够真正按照自己的喜好自定义控件并设置控件样式,令其达到所需的使用效果。通过使用 Expression Blend 中的资源,还可以为自定义控件设计极具吸引力的独特外观,使您的应用程序与其他应用程序区分开来,从而创建令人印象深刻的用户体验,或者在所有应用程序之间创建一致的用户界面 (UI)。借助 Expression Blend 所提供的控件编辑模式,设计人员和开发人员可以齐头并进地开展应用程序外观的设计工作和编程逻辑的编写工作,这恰恰是这种模式的一大优点。由于设计人员可以直接设计方案,因此所设计的方案在从模型到实现的转换过程中丝毫不会走样。
什么是控件?
控件(或 UI 设计元素)是应用程序中的可视组件。控件(如按钮或可选择项列表)使用户能够与应用程序交互。了解 Expression Blend 中提供的控件以及如何对其进行自定义后,就可以让应用程序的外观和行为达到预期效果。
通过使用 Expression Blend,既可以在美工板上直观地对控件进行相关操作,也可以在“属性”面板和“交互”面板上配置其外观和行为。例如,可以向美工板上添加“Button”控件,通过在“属性”面板中修改值来更改其外观,然后在“交互”面板中为该按钮添加相应的事件触发器,使得在单击该按钮时开始动画时间线。
除了这些简单的操作以外,还可以对控件执行下列操作:
将属性(如画笔颜色)转换为可应用于其他控件的资源,从而令应用程序的外观独具特色,而且从整体上保持统一。有关示例,请参阅创建资源。
为控件创建新的模板和样式,以定义其外观和行为,同样可以令应用程序的外观独具特色,而且从整体上保持统一。模板和样式可以包含触发器,也可以使用资源来设置属性。有关详细信息,请参阅下面的样式和模板。有关 WPF 的示例,请参阅创建样式资源和创建或编辑控件模板。有关 Silverlight 2 的示例,请参阅创建系统控件的可重用模板和在 Silverlight 2 项目中创建控件的外观。
向控件中添加动画和交互性。有关示例,请参阅创建简单动画。
通过编程的方式,在代码隐藏文件的事件处理程序方法中设计更复杂的控件行为。有关 WPF 的示例,请参阅创建新的事件处理程序方法。有关 Silverlight 2 的示例,请参阅将新页面以动态方式加载到 Silverlight 2 应用程序中。
设计自己的自定义控件并在 Expression Blend 中使用它们。有关 WPF 示例,请参阅动手试验:创建自定义 WPF 控件和动手试验:创建 WPF 用户控件。有关 Silverlight 2 的示例,请参阅在 Silverlight 2 项目中创建新用户控件。
返回页首
控件的类别
在 Expression Blend 中,可以使用很多不同类型的控件来快速设计外观独特的应用程序。
通过单击工具箱底部的“资源库” 按钮,可以从资源库使用所有控件。“工具箱”位于 Expression Blend 的左侧。从“资源库”中选择一个 UI 元素后,该元素的图标将显示在“资源库”按钮上方,以便将来能够轻松地再次选择该元素。最常用的 UI 元素已显示在“资源库”按钮上方,以便您可以迅速找到它们。
下图显示的美工板上已按对象的方式添加了某些常用 UI 元素。“笔” 工具将生成 Path 对象。从“资源库”中选择“Image”控件之后,Image 图标将显示在“工具箱”中。
从工具箱到美工板
名为“Path_40”的路径对象,表示橙色样本的形状。 |
未命名的按钮对象,表示应用程序中带有“重置图像”标签的按钮。在“对象和时间线”下,下划线 (_) 用于标识按钮的访问键。 |
||
名为“Rectangle_44”的矩形对象,表示颜色样本上的一个色条。 |
名为“photo_bathroom”的图像对象,表示房间的背景图像。 |
||
未命名的文本块(由其中包含的文本进行标识),表示应用程序标题“Color Swatch Sample Pack 1”。 |
请根据下列控件类别来确定所要使用的控件:
类别 |
用途 |
示例 |
---|---|---|
形状(在 Silverlight 1.0 项目中可用) |
通过使用椭圆形、线和矩形来创建丰富的可视元素。根据需要,其外观既可以简单明了,也可以繁复多彩。有关详细信息,请参阅绘制形状和路径。 在 Expression Blend 中,可以通过使用“属性”面板或者仅使用样式(而不使用模板),自定义这些元素的外观和行为。有关详细信息,请参阅编辑样式。 |
矩形 椭圆形 路径(由线 、笔 和铅笔 绘图工具生成) |
版式面板 |
用作其他 UI 元素的容器,以指定它们的位置以及调整窗口大小的行为。 与大多数 UI 元素不同,某些版式面板(如网格)可以包含多个子元素。这对组织和布置应用程序设计方案的布局非常有用。 有关详细信息,请参阅版式。 在 Expression Blend 中,可以通过使用“属性”面板或者使用样式(而不使用模板),自定义这些元素的外观和行为。有关详细信息,请参阅编辑样式。 |
画布 (在 Silverlight 1.0 项目中可用) 固定 网格 堆叠 环绕 |
文档/文本 |
用于定义文档显示和文本格式设置。有关详细信息,请参阅文本和版式概述。 在 Expression Blend 中,可以通过使用“属性”面板或者使用样式和模板,自定义这些元素的外观和行为。有关详细信息,请参阅创建或编辑控件模板和编辑样式。 |
TextBox TextBlock (在 Silverlight 1.0 项目中可用) RichTextBox Label PasswordBox |
控件 |
为用户提供与应用程序实现交互的途径。 在 Expression Blend 中,可以通过使用“属性”面板或者使用样式和模板,自定义这些元素的外观和行为。有关详细信息,请参阅创建或编辑控件模板和编辑样式。 |
Button ListBox Menu RadioButton CheckBox |
装饰器 |
用于向其他元素应用效果。装饰器可包含单个子元素,该子元素的外观通常受装饰器影响。 通常这些元素在应用于其他控件的模板中使用,例如,“ButtonChrome”元素在按钮的模板中使用。可以通过使用“属性”面板或者仅使用样式(而不使用模板),自定义 Decorator 元素的外观和行为。有关详细信息,请参阅编辑样式。 |
Border ButtonChrome Viewbox |
有关这些控件类型的特性的详细信息,请参阅 MSDN 上的 Windows Presentation Foundation 部分中的类型系列主题(此链接可能指向英文页面)。
返回页首
创建和修改控件
通过在“工具箱”中双击控件图标,或者通过在“工具箱”中选择控件图标之后再用鼠标在美工板上绘制元素,可在美工板上添加控件。有关详细信息,请参阅控件中列出的操作方法主题。通过在“资源库”中双击某个控件,可将该控件以默认大小插入到当前的活动元素中。由于在许多情况下,控件的默认大小都设置为“自动”,以便控件能够在添加内容后适当地调整大小,因此这项功能非常有用。
在将控件添加到 Expression Blend 中的美工板上后,所添加控件将成为应用程序中的对象。可以采用多种方式修改对象:使用对象上的图柄来调整对象的大小、移动、旋转、翻转或倾斜对象,或者在“属性”面板中输入准确的大小、位置和旋转角度等值。有关详细信息,请参阅添加或修改对象,或参阅使用对象和属性中列出的操作方法主题。
Expression Blend 对控件的操作方式非常独特。可以在控件内放入任何其他控件、面板或形状元素。这对组合使用多个控件非常有用。例如,如果要创建一个包含图像和文本的按钮,只需在按钮中放入一个堆叠面板控件,然后在堆叠面板中添加图像和文本控件即可。
控件遵循一定的继承规则。例如,有些控件用作父元素,可在其中嵌套子元素(内容);而其他控件则不支持子元素。Expression Blend 始终尝试向文档中的根元素(或最顶端的面板)添加子元素。这意味着当您开始使用 Expression Blend 进行操作时,“LayoutRoot”元素会被视为根元素。默认情况下,该元素就是向文档中插入所有子元素的目标。如果要向文档中的不同控件添加子元素,需要在“对象和时间线”下双击控件名称将其激活。激活的元素周围会显示黄色的突出显示框,以指明新控件的添加位置。
Expression Blend 支持下列不同类型的控件,这些控件按其支持的继承类型进行了分类:
类别 |
描述 |
示例 |
---|---|---|
简单控件 |
简单控件由控件本身以及为其设置的属性组成。简单控件不能包含内容。也就是说,它们不能包含子元素。 |
Image (在 Silverlight 1.0 项目中可用) ScrollBar |
内容控件 |
内容控件可以包含其他元素(即在简单的应用方案中,可以将字符串作为文本加以显示)。内容控件具有“Content”属性。这意味着它们可以包含单一内容(例如字符串),也可以包含其他元素(例如版式面板)。有关示例,请参阅创建内容控件主题。 |
CheckBox RadioButton |
项控件 |
项控件包含子元素集合。可以手动向“Items”集合属性中添加项,也可以将数据集合绑定到“ItemsSource”属性。项控件可公开项集合,但没有“Content”属性和“Header”属性。有关示例,请参阅创建项控件主题。 |
ComboBox ListBox |
带标题控件 |
带标题控件包含一个标题子元素,该子元素可为此控件添加标签。带标题控件可以包含内容(带标题内容控件)或项集合(带标题的项控件)。有关示例,请参阅创建带标题控件主题。 |
TabControl TabItem MenuItem |
有关这些控件类型的特性的详细信息,请参阅 MSDN(此链接可能指向英文页面)上的“Windows Presentation Foundation”部分中的“内容模型”主题。
返回页首
样式和模板
如前文控件概述中所述,可以通过多种方式(包括为控件创建模板和样式)自定义控件,使应用程序的外观独具特色,而且从整体上保持统一。模板和样式分别定义了组成控件的各个组件以及控件的默认行为。可以通过生成控件的默认系统样式和模板的副本,来创建模板和样式,这是因为用户不能修改系统样式和模板。修改模板和样式使用户能够轻松创建模板和样式,其实质是在 Expression Blend 的“设计”视图中生成新控件,而无需使用代码。有关详细信息,请参阅样式和模板概述。
返回页首