C# WPF:滑块移动到准确位置

Posted

技术标签:

【中文标题】C# WPF:滑块移动到准确位置【英文标题】:C# WPF : slider going to exact position 【发布时间】:2013-08-03 20:15:00 【问题描述】:

我在 WPF 窗口中使用了一个滑块,我希望当用户单击滑块轨道上的某个位置时,拇指会转到那个确切的位置。目前,当我单击某个位置时,拇指会指向该位置,但不会恰好指向该位置。我怎样才能达到我想要的?

编辑:一个更好地解释我想要的例子:如果拇指在 10 并且我在 100 附近按下鼠标,我希望它跳到 100(不传递其他值)。

【问题讨论】:

【参考方案1】:

您应该处理滑块拇指鼠标输入事件并定义您想要的行为。

var thumb = (slider1.Template.FindName("PART_Track", slider) as Track).Thumb;
thumb.MouseEnter += new MouseEventHandler(ThumbMouseEnter);

然后在 ThumbMouseEnter 事件处理程序中设置拇指的位置。这将允许您定义您想要的任何行为。

social.msdn.microsoft.com 上提出了非常相似的问题

【讨论】:

【参考方案2】:

您需要将IsMoveToPointEnabled 设置为True:http://msdn.microsoft.com/en-us/library/system.windows.controls.slider.ismovetopointenabled.aspx

Slider.IsMoveToPointEnabled 获取或设置一个值,该值指示滑块的拇指是否立即移动到鼠标指针在滑块轨道上暂停时发生的鼠标单击位置。

【讨论】:

是的,就是这样。我确信我尝试了这个解决方案,但显然我错了。谢谢!

以上是关于C# WPF:滑块移动到准确位置的主要内容,如果未能解决你的问题,请参考以下文章

WPF 滑块仅可拖动

如何在 WPF C# 中更改滑块上刻度的设计(刻度的厚度、刻度的形状等)

如何实现一个由鼠标移动的 WPF 控件,如滑块控件但 2D?

WPF 滑块 thumb.DragCompleted

登录拼图滑块验证

如何自定义滑块控件,如 wpf 中的音量