SimpleCheckBox

此页仅适用于 WPF 项目

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

SimpleCheckBox 控件的美工板视图

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

控件模板的分类详解

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

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

  • Bullet 元素,其中包含一个网格面板,而网格面板又包含一个名为“CheckMark”的 Path 元素和一个 Border 元素。Path 用于绘制“x”标记。

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

    对象视图:SimpleCheckBox 控件的基本部件(模板)

    Cc295106.0d0b3635-222f-44ec-81d6-3bf59a1beca3(zh-cn,Expression.10).png

Cc295106.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

使用的属性触发器

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

Cc295106.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

使用的画笔

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

  • 使用下列画笔资源设置 Border 元素的“Background”属性:在未激活任何触发器时使用“NormalBrush”;在“IsMouseOver”为“True”时使用“MouseOverBrush”;在“IsPressed”为“True”时使用“PressedBrush”;在“IsEnabled”为“False”时使用“DisabledBackgroundBrush”。

  • 使用下列画笔资源设置“BorderBrush”属性:在未激活任何触发器时使用“NormalBorderBrush”;在“IsPressed”为“True”时使用“PressedBorderBrush”;在“IsEnabled”为“False”时使用“DisabledBorderBrush”。

  • 在“IsEnabled”为“False”时,使用“DisabledForegroundBrush”设置“Foreground”属性。

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

Cc295106.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

最佳实用技巧和设计准则

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

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

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

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

Cc295106.7e183f1f-37d8-4dcb-980c-19a5d61ca087(zh-cn,Expression.10).gif返回页首

另请参见

概念

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