自定义滑动条(Slider)

Legend1988 2011-04-08 10:28:43
大家有没有做过自定义滑动条(Slider)的,现在我想让滑动块滑动时滑过的地方都填充上颜色,这个效果做了很久都做不出来,各位有没有什么好的想法呢?谢了~
...全文
600 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
hhddzz 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 legend1988 的回复:]
LinearGradientBrush会不会导致太多颜色啊?
引用 4 楼 hhddzz 的回复:
我做过,就是用的LinearGradientBrush
[/Quote]
什么叫“颜色过多”啊,你看我的图片就清楚了啊
我那个图上面的控件,
当前标记到下一个标记之间将会被填充为当前标记的颜色
标记可以拖动,标记的颜色也可以改变

如果你是不知道LinearGradientBrush怎么做出那种效果,可以参考楼上,其实很简单
比如
offset=0 蓝色
offset=0.3 蓝色
offset=0.3 红色
offset=1 红色
这样的话0-0.3就是单一的蓝色,而没有渐变效果;0.3-1就是单一的红色,没有渐变效果
设置某个模式可以省略最后的那个offset=1 红色
关键点就是在需要切换颜色的地方设置两个offset相同的<GradientStop/>
沝林 2011-04-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 lcp147572931 的回复:]
他是说渐变导致太多颜色(过渡阶段颜色)
[/Quote]

我试过了,可以通过调节参数,达到颜色的单一性,这里上传图片比较麻烦,就用代码表示了:

<LinearGradientBrush StartPoint="-0.00125,0.5" EndPoint="1.00125,0.5">
<LinearGradientBrush.GradientStops>
<GradientStop Color="#FF000000" Offset="0"/>
<GradientStop Color="#FF7F7F7F" Offset="0.541048"/>
<GradientStop Color="#FFFFFFFF" Offset="0.541667"/>
</LinearGradientBrush.GradientStops>
</LinearGradientBrush>

这段渐变代码后面半部分只有单独一种颜色,前面半部分有一定的渐变,但是分隔线已经相当明显,如果想前半部分没有渐变,加一个GradientStop也可以实现

<LinearGradientBrush.GradientStops>
<GradientStop Color="#FFB63434" Offset="0"/>
<GradientStop Color="#FFB63434" Offset="0.541269"/>
<GradientStop Color="#FFEB1634" Offset="0.541667"/>
<GradientStop Color="#FF124FAB" Offset="0.541667"/>
</LinearGradientBrush.GradientStops>

这样就可以看到2种颜色了,只需要设置Offset就可以控制颜色显示的比例了
lcp147572931 2011-04-12
  • 打赏
  • 举报
回复
他是说渐变导致太多颜色(过渡阶段颜色)
沝林 2011-04-12
  • 打赏
  • 举报
回复
多少种颜色是自己定义的啊,不明白你的颜色太多是什么意思
Legend1988 2011-04-12
  • 打赏
  • 举报
回复
LinearGradientBrush会不会导致太多颜色啊?
[Quote=引用 4 楼 hhddzz 的回复:]
我做过,就是用的LinearGradientBrush
[/Quote]
Legend1988 2011-04-12
  • 打赏
  • 举报
回复
谢谢~这样的话会不会导致这个滑动条的背景颜色不一样啊?也就是渐变会不会导致颜色太多?
[Quote=引用 3 楼 duanzilin 的回复:]
我觉得是不是可以定义一个渐变的刷子,滑动的时候改变渐变参数,达到滑过的地方填充一种颜色,没滑过的地方是另一种颜色
[/Quote]
hhddzz 2011-04-11
  • 打赏
  • 举报
回复
我做过,就是用的LinearGradientBrush
沝林 2011-04-09
  • 打赏
  • 举报
回复
我觉得是不是可以定义一个渐变的刷子,滑动的时候改变渐变参数,达到滑过的地方填充一种颜色,没滑过的地方是另一种颜色
Legend1988 2011-04-09
  • 打赏
  • 举报
回复
没搞懂你的意思啊~
[Quote=引用 1 楼 lcp147572931 的回复:]
帮顶 我也正想自己写个Slider控件呢 就是当拖动滑动条停止的时候 也就是左键弹起的时候 再取值 中间值不变化 不知道 你有没有什么好的解决办法
[/Quote]
lcp147572931 2011-04-09
  • 打赏
  • 举报
回复
帮顶 我也正想自己写个Slider控件呢 就是当拖动滑动条停止的时候 也就是左键弹起的时候 再取值 中间值不变化 不知道 你有没有什么好的解决办法

8,734

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧