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 的外观,您可以修改这些模板使用的画笔,也可以创建新模板。
最佳实用技巧和设计准则
如果希望设计人员能够向控件中添加更多可视元素,通常可将网格控件用作模板的根元素。 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) 控件。