[英]How to make WPF Slider Thumb follow cursor from any point
我有這樣的滑塊:
<Slider Minimum="0" Maximum="100"
TickFrequency="1"
IsMoveToPointEnabled="True"
IsSnapToTickEnabled="False"/>
我想做下一個行為:當MouseDown在滑塊的任何一點發生時,Thumb不僅會移動一次到該點,而且還會跟隨光標直到MouseUp發生。
對不起,如果已經問過,我找不到那個問題。
僅當您拖動滑塊拇指本身時,才會發生此行為。
但是 ,這里有一些代碼可以做到這一點;-)
掛鈎到XAML中的MouseMove事件:
<Slider MouseMove="Slider_OnMouseMove" IsMoveToPointEnabled="True"/>
然后插入此代碼:
private void Slider_OnMouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
var slider = (Slider)sender;
Point position = e.GetPosition(slider);
double d = 1.0d / slider.ActualWidth * position.X;
var p = slider.Maximum * d;
slider.Value = p;
}
}
注意 :
Aybe的解決方案在thumb_MouseMove事件中效果更好。
void timelineThumb_MouseMove(object sender, MouseEventArgs e)
{
if (e.LeftButton == MouseButtonState.Pressed)
{
var thumb = sender as Thumb;
Point pos = e.GetPosition(uiVideoPlayerTimelineSlider);
double d = 1.0d / uiVideoPlayerTimelineSlider.ActualWidth * pos.X;
uiVideoPlayerTimelineSlider.Value = uiVideoPlayerTimelineSlider.Maximum * d;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.