SimpleScrollBar
滚动条是一种简单控件,可根据“Value”属性在滚动条上的某个位置显示一个标记。在 Microsoft Expression Blend 中,可以通过使用“属性”面板的“布局”下的“Orientation”属性,来设置滚动条的方向。可以在“属性”面板中的“公共属性”下,设置滚动条的“Minimum”、“Maximum”和当前的“Value”。当前值必须介于最小值和最大值之间。
SimpleScrollBar 控件的美工板视图
控件模板的分类详解
SimpleScrollBar 控件模板由下列项组成:
名为“GridRoot”的网格面板:用于在滚动条中存放多个子元素。同时,使用网格也是为了便于用户向模板中添加更多元素。该网格分为三行:顶部行和底部行的大小设置为最大值,以便它们不会扩展超过 18 个像素(即设备无关单位,每单位约等于 1/96 英寸);中间行的大小设置为星号 (*),表示在窗口扩展时,它会随之扩展。
两个分别名为“DecreaseRepeat”和“IncreaseRepeat”的 RepeatButton 元素:用于在滚动条上移动位置标记。RepeatButton 元素包含用于显示箭头的内容。同样地,这两个元素也使用网格作为根元素,以便用户轻松编辑 Path 元素(名为“DecreaseArrow”和“IncreaseArrow”)以及添加其他内容。
名为“PART_Track”的 Track 元素:用于沿滚动条显示一个 Thumb 元素。滚动条公开的部分分为两个 RepeatButton,分别名为“PageDown”和“PageUp”。这两个元素均使用了可单独编辑的 SimpleScrollRepeatButtonStyle 模板。Track 的 IncreaseRepeatButton 和 DecreaseRepeatButton 部分使用了 Command 绑定,以便它们能够调用滚动条类中的命令。Thumb 元素使用了可单独编辑的 SimpleThumbStyle 模板。
布局转换:用于在水平方向上显示滑块。这种设计可以简化编辑操作,因为它不需要记住编辑两个不同的模板。但是,也会出现两个方向差别极大,从而需要两个单独模板的情况。在这种情况下,可以在 Expression Blend 的“XAML”视图中,在 <Style> 元素中使用 Setter 来根据方向切换模板。ScrollBar 系统控件的默认模板中就包含这种情况的示例。
警告: 请勿重命名名称以“PART_”开头的任何元素,因为在实现该控件的代码中引用了这些元素。
对象视图:SimpleScrollBar 控件的基本部件(模板)
返回页首
使用的属性触发器
控件模板中的属性触发器可用于使控件响应属性改变。可以在“交互”面板中的“触发器”下单击相应的项,以查看在激活触发器时更改的属性。例如,在 SimpleScrollBar 模板中,当“Orientation”属性为“Horizontal”时,有多个属性会改变,以反映滚动条的新方向。
返回页首
使用的画笔
SimpleScrollBar 模板仅在“Foreground”属性中使用一个系统画笔资源。其他画笔资源均在 SimpleScrollBar 所使用的模板(如 SimpleRepeatButton、SimpleThumbStyle 和 SimpleScrollRepeatButtonStyle 模板)中引用。可以修改这些模板所使用的画笔,以更改 SimpleScrollBar 的外观;也可以创建新模板。
返回页首
最佳实用技巧和设计准则
一般来说,如果希望设计人员能够向控件中添加更多可视元素,则可将 Grid 控件用作模板的根元素。Expression Blend 会查找 Grid 控件等版式面板,并且默认将其激活,从而使添加到美工板上的新元素最终成为该版式面板的子元素。
可以向 ScrollViewer 的模板中使用的滚动条应用 SimpleScrollBar 模板。
由于 SimpleScrollBar 模板使用了其他模板,因此浏览模板的各个级别以找到要更改的模板会非常麻烦。若要直接编辑模板,可以在“资源”面板中单击模板名称旁边的“编辑资源”按钮。然后,在样式的编辑模式下,右键单击“对象和时间线”下的“Style”,指向“编辑控件部件(模板)”,然后单击“编辑模板”或“编辑副本”。或者,可以直接删除对子模板的引用(在“属性”面板的“杂项”下重置“Style”属性),然后在第一个级别设计自己的模板,这样做会简单一些。
为了使控件正常工作,需要保留对控件的类发出命令的命令绑定,并提供另一种方式以便在控件以及表示控件的类之间建立约定。这些绑定包含在 IncreaseRepeat、DecreaseRepeat、PageUp 和 PageDown 元素的“Command”属性中,并且包含在 Orientation=Horizontal 触发器中。
如果需要,可以向 SimpleScrollBar 模板中添加触发器,或者修改 PART_Track 元素中的元素,使滚动条看起来更有趣,但是请勿重命名 PART_Track 元素及其任何子元素,因为在实现该控件的代码中引用了这些元素。PART_Track 元素知道如何找到其部件,因为它们放置在特定的控件标题下:Track.IncreaseRepeatButton、Track.DecreaseRepeatButton 和 Track.Thumb。Thumb 也是一种知道其拖动方式的特定 Windows Presentation Foundation (WPF) 控件。
返回页首