gpt4 book ai didi

WPF:带有用户拖动后触发的事件的 slider

转载 作者:行者123 更新时间:2023-12-02 02:33:04 28 4
gpt4 key购买 nike

我目前正在 WPF 中制作 MP3 播放器,我想制作一个 slider ,允许用户通过向左或向右滑动 slider 来查找 MP3 中的特定位置。

我尝试过使用 ValueChanged 事件,但每次值更改时都会触发,因此如果将其拖动,该事件将触发多次,我希望该事件仅当用户完成拖动 slider 时触发,然后获取新值

我怎样才能实现这个目标?

<小时/>

[更新]

我找到了this post在MSDN上,基本上讨论了同样的事情,他们提出了两个“解决方案”;子类化 Slider 或在 ValueChanged 事件中调用 DispatcherTimer,在一段时间后调用操作。

你能想出比上面提到的两个更好的东西吗?

最佳答案

除了使用 Thumb.DragCompleted 事件之外,您还可以同时使用 ValueChangedThumb.DragStarted,这样您就不会丢失功能当用户通过按箭头键或单击 slider 修改值时。

Xaml:

<Slider ValueChanged="Slider_ValueChanged"
Thumb.DragStarted="Slider_DragStarted"
Thumb.DragCompleted="Slider_DragCompleted"/>

隐藏代码:

private bool dragStarted = false;

private void Slider_DragCompleted(object sender, DragCompletedEventArgs e)
{
DoWork(((Slider)sender).Value);
this.dragStarted = false;
}

private void Slider_DragStarted(object sender, DragStartedEventArgs e)
{
this.dragStarted = true;
}

private void Slider_ValueChanged(
object sender,
RoutedPropertyChangedEventArgs<double> e)
{
if (!dragStarted)
DoWork(e.NewValue);
}

关于WPF:带有用户拖动后触发的事件的 slider ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/723502/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com