【问题标题】:Slider: How to snap to one tick, but not others滑块:如何捕捉到一个刻度,而不是其他刻度
【发布时间】:2012-08-15 14:05:42
【问题描述】:

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

<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。但这会完全禁用拖动。

【问题讨论】:

标签: wpf


【解决方案1】:

我做了类似的事情。

我创建了 2 个滑块:

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

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

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

如果 InvisibleSlider

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-05-30
    • 2013-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 1970-01-01
    相关资源
    最近更新 更多