我在一个WPF窗口中使用了滑动条,希望当用户单击滑动条轨道上的某个位置时,滑块可以到达该确切位置。目前,当我点击某个位置时,滑块会朝着该位置移动,但并不是确切地到达该位置。我该如何实现我想要的效果?
编辑:为更好地解释我的需求,举个例子:如果滑块在10处,我按下鼠标靠近100处,我希望它能跳到100(而不是通过其他值)。
编辑:为更好地解释我的需求,举个例子:如果滑块在10处,我按下鼠标靠近100处,我希望它能跳到100(而不是通过其他值)。
你需要将 IsMoveToPointEnabled
设置为 True
:
Slider.IsMoveToPointEnabled
获取或设置一个值,该值指示滑块的滑块按钮是否立即移动到鼠标在滑块轨道上暂停时发生的鼠标单击的位置。
您需要处理滑块拇指鼠标进入事件,并定义您想要的行为。
var thumb = (slider1.Template.FindName("PART_Track", slider) as Track).Thumb;
thumb.MouseEnter += new MouseEventHandler(ThumbMouseEnter);
然后在ThumbMouseEnter事件处理程序中设置拇指位置。这将允许您定义任何所需的行为。
类似的问题在social.msdn.microsoft.com上有提出。