1

我正在制作一个媒体播放器速度选择器,从 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 的 RadControls,如果那里有什么特别实现的话。

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

4

1 回答 1

0

我做了类似的事情。

我创建了 2 个滑块:

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

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

现在您只需编写隐形滑块,例如:

如果 InvisibleSlider < 10,那么 RealSlider 保持在 0.5 如果 InvisibleSlider 在 10 和 30 之间,那么 RealSlider 的值是 InvisibleSlider * X ?

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

我不知道我是否清楚,英语不是我的主要语言对不起

于 2012-08-20T11:01:22.160 回答