C# 如何根据滑块刻度自定义具有不同颜色边框的滑块?
我必须创建一个具有特定给定刻度值的滑块(例如100304605,…)。我想以这样一种方式设置滑块的样式,例如,从0到100,条形图有一种颜色,从100到304,有一种不同的颜色,等等 以下是我希望实现的目标的示例 以下是我的.xaml代码:C# 如何根据滑块刻度自定义具有不同颜色边框的滑块?,c#,wpf,xaml,slider,styles,C#,Wpf,Xaml,Slider,Styles,我必须创建一个具有特定给定刻度值的滑块(例如100304605,…)。我想以这样一种方式设置滑块的样式,例如,从0到100,条形图有一种颜色,从100到304,有一种不同的颜色,等等 以下是我希望实现的目标的示例 以下是我的.xaml代码: <Slider Style="{StaticResource MyCustomStyleForSlider}" //the style to be applied Name="MyTimeSlider" Width="130" Minimum="
<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"/>
将子类化滑块
,并添加一个提供要使用的颜色或笔刷列表的依赖项属性。在类中,每当Ticks
属性(提供分隔区域的Ticks列表)更改时,我将重新计算背景的线性梯度。要进行硬剪切,请在与上一个渐变停止相同的偏移处添加不同的颜色,这应该相当简单。如果您只想覆盖常规滑块模板,它相当长,但下面是一个示例:(代码到长,粘贴到这里)
要更改背景焦点,请单击x:Key=“HorizontalSliderTrackNormalBackground”
。我已经让它显示了几种不同的颜色。自定义控件是更好的选择。您将需要新的依赖属性来指定范围(值和颜色)和一些逻辑来绘制该范围。这可能不适合xaml(读取-您将需要代码隐藏)。