滑块:如何捕捉到一个刻度线,而不是其他刻度线

时间:2012-08-20 08:21:26

标签: wpf

我正在制作一个媒体播放器速度选择器,从0.5到2.这就是我定义滑块的方式。

<Slider Maximum="2" Minimum="0.5" Ticks="0.5 0.75 1 2"/>

这是因为0.5,0.75,1和2是最理想的游戏速度。所以我可以,如果这是唯一的要求,请说IsSnapToTicksEnabled =“True”,但也应该允许用户在这些刻度之间选择一个值,同时仍然可以捕捉到指定的刻度。

因此,一旦滑块关闭,拇指应该对齐这些刻度,但是当距离超过0.1时,拇指不应该对齐。这可能吗? 如果那里有专门实施的东西,我们也有来自Telerik的RadControl。

到目前为止我尝试过的是收听ValueChanged并检查新值是否在1.1和0.9之间,如果是,则将其设置为1。但是这会完全禁用拖动。

1 个答案:

答案 0 :(得分:0)

我做了类似的事情。

我创建了2个滑块:

其中一个是不可见的(例如从0到100),它只是一个矩形(不可见的颜色)在另一个滑块的顶部,这是你用鼠标滑动的那个。

第二个滑块是你的图形,从0.5到2,就像你实际拥有的一样。

现在您只需要编写不可见的滑块,例如:

如果InvisibleSlider&lt; 10,然后RealSlider保持在0.5 如果InvisibleSlider在10到30之间,那么RealSlider的值是InvisibleSlider * X?

有了这个你可以模拟你坚持你已经决定的地方,例如:如果隐形滑块在40到60之间,坚持0.75,你的鼠标会移动但是图形......

我不知道我是否清楚,英语不是我的主要语言抱歉