SimpleCheckBox

此页仅适用于 WPF 项目

复选框是一种用作开关的内容控件,可具有三种状态:选中、未选中和中间状态。 IsChecked 状态指示该复选框是否被选中。在 Microsoft Expression Blend 中,可以通过双击复选框并在其中绘制对象,从而在复选框中放入内容。如果希望在复选框中放入多个对象,则需要先添加一个版式面板(如 GridCanvas )。默认情况下,复选框也可以显示文本;右键单击复选框,然后单击“编辑文本”,即可编辑文本。

SimpleCheckBox 控件的美工板视图

Cc295106.b070f542-4f36-422b-a930-be4b1311b2ca(zh-cn,Expression.40).png

控件模板的分类详解

SimpleCheckBox 控件模板由下列项组成:

  • BulletDecorator 容器 ,用于将复选框与文本对齐。 BulletDecorator 包含两个子元素:一个项目符号和一个内容对象(如 ContentPresenter )。 BulletDecorator 用在需要将文本与另一个对象对齐的其他控件(如 RadioButton )中。

  • Bullet 元素 ,它包含一个 Grid 面板,而该面板又包含一个名为 CheckMarkPath 元素和一个 Border 元素。 Path 用于绘制“x”标记。

  • ContentPresenter ,用于显示应用模板的复选框的 Content 属性。必须存在此元素,才能显示复选框的内容。

使用的属性触发器

控件模板中的属性触发器可用于使控件响应属性改变。可以在“触发器”面板中单击各项,以查看在触发器处于活动状态时更改的属性。例如,在 SimpleCheckBox 模板中,当 IsChecked 属性为 False 时, CheckMark 路径元素的可见性将变为 Collapsed 。在其他触发器中,使用画笔资源更改 Border 元素的背景。

使用的画笔

SimpleCheckBox 模板使用 SimpleStyles.xaml 资源字典中的下列画笔资源:

  • 使用下列画笔资源设置 Border 元素的 Background 属性:在未激活任何触发器时使用 NormalBrush ;在 IsMouseOverTrue 时使用 MouseOverBrush ;在 IsPressedTrue 时使用 PressedBrush ,以及在 IsEnabledFalse 时使用 DisabledBackgroundBrush

  • 使用下列画笔资源设置 BorderBrush 属性:在未激活任何触发器时使用 NormalBorderBrush ;在 IsPressedTrue 时使用 PressedBorderBrush ,以及在 IsEnabledFalse 时使用 DisabledBorderBrush

  • IsEnabledFalse 时,使用 DisabledForegroundBrush 设置 Foreground 属性。

  • CheckMark 元素的 Stroke 属性使用 GlyphBrush 绘制“x”标记。

最佳实用技巧和设计准则

  • 一般来说,如果希望应用程序用户界面 (UI) 设计人员能够向控件添加更多可视元素,则可将 Grid 控件用作模板的根元素。Expression Blend 会查找 Grid 控件等版式面板,并且默认将其激活,从而使添加到美工板上的新对象最终成为该版式面板的子对象。

  • 复选框的内容由 ContentPresenter 对象显示。 ContentPresenter 对象自动将模板绑定到应用此模板的控件的 Content 属性。复选框必须具有此对象,才能显示来自模板中父对象的内容。

  • 在某些情况下,所使用的控件没有足够的属性可绑定到控件模板中的属性。例如, CheckBox 控件未提供属性以设置 CheckMark 对象的画笔。在这种情况下, CheckMark 的笔划将设置为某种画笔,使其更易于更改。可以基于 CheckBox 控件创建自定义类并添加更多要绑定的属性,也可以绑定到某个现有的属性。有关自定义类的示例,请参阅本用户指南中的动手试验:创建具有自定义属性的自定义控件

  • 因为需要隐藏和显示 CheckMark 路径对象,所以 Grid 对象的大小是固定的。如果 Grid 对象的大小不是固定的,则在所做的复选框选择改变时 ContentPresenter 中的文本会移动。除了使用固定的 Grid 大小并隐藏 CheckMark 路径以外,还可以将 CheckMark 路径对象的 Stroke 属性的 Opacity 更改为 0

另请参阅

任务

动手试验:自定义 SimpleCheckBox 中复选标记的外观

Microsoft Corporation 版权所有 ⓒ 2011。保留所有权利。