SimpleButton
按钮是一种用于响应 Click 事件的内容控件。在 Microsoft Expression Blend 中,可以通过双击按钮并在其中绘制元素,从而在按钮中放入内容。如果希望在该按钮中放入多个元素,则需要先添加一个版式面板(如“网格”或“画布”)。默认情况下,按钮也可以显示文本;右键单击按钮,然后单击“编辑文本”,即可编辑文本。
SimpleButton 控件的美工板视图
控件模板的分类详解
SimpleButton 控件模板由下列项组成:
“网格”版式面板:用于在按钮中存放多个子元素。同时,使用网格也是为了便于用户向模板中添加更多元素。例如,如果根元素是 Border 并且用户尝试添加另一元素,则由于 Border 只能包含一个子元素,因此该元素将取代 ContentPresenter 元素。
Border 元素:使用此元素是因为它包含“BorderThickness”属性,该属性可以用模板绑定到应用此模板的按钮控件的“BorderThickness”属性。
ContentPresenter:用于显示应用此模板的按钮的“Content”属性。必须存在此元素,才能显示按钮的内容。
对象视图:SimpleButton 控件的基本部件(模板)
返回页首
使用的属性触发器
控件模板中的属性触发器可用于使控件响应属性改变。可以在“交互”面板中的“触发器”下单击各项,以查看在激活触发器时更改的属性。例如,在 SimpleButton 模板中,当“IsMouseOver”属性变为“True”时,Border 元素的背景颜色将变为 MouseOverBrush 资源。
返回页首
使用的画笔
SimpleButton 模板使用 SimpleStyles.xaml 资源字典中的下列画笔资源:
使用下列画笔资源设置“Background”属性:在未激活任何触发器时使用“NormalBrush”;在“IsMouseOver”为“True”时使用“MouseOverBrush”;在“IsPressed”为“True”时使用“PressedBrush”;在“IsEnabled”为“False”时使用“DisabledBackgroundBrush”。
使用下列画笔资源设置“Border”属性:在未激活任何触发器时使用“NormalBorderBrush”;在“IsKeyboardFocused”为“True”时使用“DefaultBorderBrush”;在“IsPressed”为“True”时使用“PressedBorderBrush”;在“IsEnabled”为“False”时使用“DisabledBorderBrush”。
在“IsEnabled”为“False”时,使用“DisabledForegroundBrush”设置“Foreground”属性。
返回页首
最佳实用技巧和设计准则
如果希望设计人员能够向控件中添加更多可视元素,通常可将网格控件用作模板的根元素。Expression Blend 会查找网格控件等版式面板,并且默认将其激活,从而使添加到美工板上的新元素最终成为该版式面板的子元素。
属性触发器用于根据用户的操作(如单击按钮)来更改控件的外观。建议优先使用属性触发器,再考虑使用事件触发器,因为需要使用两个事件触发器(如分别对应 MouseDown 和 MouseUp 事件)才能完成一个属性触发器(如对应 IsPressed 状态)所能完成的任务。但是,事件触发器可用于开始运行动画时间线,以实现更复杂的控制。
通常,需要对 IsMouseOver、IsPressed 和 IsEnabled (False) 状态设置画笔或视觉效果变化。此外,可以使用通常用于在控件周围显示虚线的 IsKeyboardFocused 状态。
返回页首