SimpleSlider

此页仅适用于 WPF 项目

滑块是一种简单控件,可让用户通过移动 Thumb 控件来从一个值范围中进行选择。默认情况下,滑块呈水平显示,但可以在 Microsoft Expression Blend 的“属性”面板的“公共属性”下设置“Orientation”属性,将其改为垂直显示。若要设置滑块的值,请使用“Minimum”、“Maximum”和“Value”属性。

SimpleSlider 控件的美工板视图

Cc295377.50295968-6423-4517-9479-ed886201b731(zh-cn,Expression.10).png

控件模板的分类详解

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

  • 名为“GridRoot”的网格面板:用于在滑块中存放多个子元素。同时,使用网格也是为了便于应用程序用户界面 (UI) 的设计人员向模板中添加更多元素。GridRoot 分为三行:顶部行包含 TopTick 元素,中间行包含 Thumb 元素,底部行包含 BottomTick 元素。

  • 分别名为“TopTick”和“BottomTick”的两个 TickBar 元素:用于在滑块上显示刻度线。默认情况下,这些元素的“Visibility”属性设置为“Collapsed”。TickBar 元素根据对应用此模板的滑块控件设置的属性,确定要显示的刻度线数量。TickBar 元素不提供可编辑的模板,但是可以通过设置滑块控件的“Foreground”属性,来设置用于显示刻度线的画笔(即,此 TickBar 用模板绑定到滑块控件的“Foreground”属性)。

  • Border 元素:使用此元素是因为它包含“BorderThickness”属性,而该属性可以用模板绑定到应用此模板的按钮控件的“BorderThickness”属性。

  • 名为“PART_Track”的 Track 元素:用于沿滚动条显示一个 Thumb 元素。用户可以拖动 Thumb 元素。默认情况下,Thumb 元素使用可由用户编辑的 SimpleThumbStyle 模板。

  • 两个 RepeatButton 元素:这两个元素包含在 PART_Track 元素中,使用户能够通过单击 Thumb 的任一端来对滑块值进行较大的更改。可以在滑块(而不是模板)的“LargeChange”属性中指定这些更改的步长值。“SmallChange”属性指定的步长值在用户使用方向键移动 Thumb 时使用。

  • 布局转换:用于在水平方向上显示滑块。这种设计可以简化编辑操作,因为用户不需要记住编辑两个不同的模板。但是,也会出现两个方向差别极大,从而需要两个单独模板的情况。在这种情况下,可以在 Expression Blend 的“XAML”视图中,在 <Style> 元素中使用一个 Setter,根据方向切换模板。Slider 系统控件的默认模板中就包含这种情况的示例。

    Cc295377.alert_caution(zh-cn,Expression.10).gif警告:

    请勿重命名名称以“PART_”开头的任何元素,因为在实现该控件的代码中引用了这些元素。

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

    Cc295377.29dedf1c-7f1c-41d0-82a6-8bfccb4eb726(zh-cn,Expression.10).png

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

使用的属性触发器

控件模板中的属性触发器可用于使控件响应属性改变。可以在“交互”面板中的“触发器”下单击各项,以查看在激活触发器时更改的属性。例如,在 SimpleSlider 模板中,使用触发器根据“TickPlacement”属性来显示 TickBar 元素。这可设置 TopTick 和 BottomTick 元素的可见性。也可在 SimpleSlider 模板的触发器中配置水平和垂直方向。这会对滑块应用布局转换,使其旋转 90 度。由于 Track 会自动确定自身方向,因此会将其强制返回,而不会被旋转两次。

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

使用的画笔

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

  • 在未激活任何触发器时使用“LightBrush”设置“Background”属性,并在“IsEnabled”为“False”时使用“DisabledBackgroundBrush”设置该属性。

  • 在未激活任何触发器时使用“NormalBorderBrush”设置“BorderBrush”属性,并在“IsEnabled”为“False”时使用“DisabledBorderBrush”设置该属性。

  • 使用“GlyphBrush”设置 TopTick 元素的“Foreground”属性。

  • 使用“NormalBrush”设置 SimpleThumb 模板的“Fill”属性,并使用“NormalBorderBrush”设置“Stroke”属性。

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

最佳实用技巧和设计准则

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

  • 如果需要,可以向 SimpleSlider 模板中添加触发器,或者修改 PART_Track 元素,使滑块看起来更有趣,但是请勿重命名名称以“PART_”开头的任何元素,因为在实现该控件的代码中引用了这些元素。Thumb 和重复按钮需要放在 Track 的正确元素中。Track 控件知道如何根据 Slider 值放置 Thumb 元素。重复按钮使用命令绑定,来增大或减小滑块的值。

  • 在编辑 SimpelSlider 的模板时,可以使用“交互”面板的“触发器”区域选择适当的触发器,强制显示 TickBar 元素。例如,在 SimpleSlider 模板中,当“TickPlacement”设置为“Both”时,将两个 TickBar 元素的“Visibility”属性设置为“Visible”,来显示这两个元素。

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

另请参见

概念

动手试验:自定义 SimpleSlider 的 Thumb 元素