如何根据滑块刻度自定义具有不同颜色边框的滑块?

时间:2016-05-30 13:01:09

标签: c# wpf xaml slider styles

我必须创建一个具有特定给定刻度值的滑块(例如100,304,605,..)。我想以这样一种方式设置滑块的样式,例如从0到100的条形图有颜色,而100-304则是不同的颜色等等。

这是例如我希望实现的目标。

enter image description here

这是我的.xaml代码:

<Slider Style="{StaticResource MyCustomStyleForSlider}" //the style to be applied
Name="MyTimeSlider" 
Width="130" 
Minimum="0" 
Maximum="{Binding MaxTimeFrames}" 
Value="{Binding TimeFrame}" 
TickPlacement="BottomRight" 
TickFrequency="1" 
IsMoveToPointEnabled="True" 
Margin="1,4,1,1" 
VerticalAlignment="Center" 
HorizontalAlignment="Center"/>

2 个答案:

答案 0 :(得分:1)

将子类Slider添加一个依赖项属性,该属性提供要使用的颜色或画笔列表。在课堂上,只要LinearGradient属性(提供区分区域的刻度列表)发生变化,我就会重新计算Background Ticks。要使硬切割在与前一个渐变停止相同的偏移处添加不同的颜色,应该相当简单。

答案 1 :(得分:1)

如果您只想覆盖常规滑块模板,那么它非常冗长,但这里有一个示例:http://pastebin.com/XVuRLuWp(此处要粘贴的代码很长)。

为了更改x:Key="HorizontalSliderTrackNormalBackground"的背景焦点。我已经让它显示了几种不同的颜色。