相关疑难解决方法(0)

WPF:具有在用户拖动后触发的事件的滑块

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

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

我怎样才能做到这一点?


[更新]

我在MSDN上发现这篇文章基本上讨论了同样的事情,他们提出了两个"解决方案"; 要么继承Slider,要么在一个时间跨度后调用动作DispatcherTimerValueChanged事件中调用a.

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

wpf xaml slider

52
推荐指数
5
解决办法
6万
查看次数

WPF - 如何在拖动时更新滑块的值

你可能会说它是如何在拖动时停止更新滑块值的重复但老实说,解决方案从2011年开始,并没有为我工作(甚至评论了其他用户接受的答案),其他答案与我无关.所以请耐心等待.

这是我的问题:我有一个绑定到这样的值的滑块:

<Slider Name="AudioSlider" Value="{Binding AudioValue}" 
        Grid.Column="1"    Grid.Row="1"    Height="30" 
        SmallChange="1"    Maximum="100" 
        IsSnapToTickEnabled="True"                                      
        IsMoveToPointEnabled="True"/>
Run Code Online (Sandbox Code Playgroud)

这就是价值:

        private double _audioValue;
        public double AudioValue
        {
            get { return _audioValue; }
            set
            {
                if (_audioValue == value)
                    return;
                _audioValue = value;
                SendPacket(cockpitType, (byte)Index.AudioSlider, (byte)_audioValue);
                OnPropertyChanged("AudioValue");
            }
        }
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,每次值发生变化时我都会发送一个数据包,当它更新拖动值时,它只是在服务器上发送垃圾邮件,这是必须要防止的.

我试图将滑块绑定到一个函数(mouseUp),但我无法通过这种方式获取值.

任何想法我能做什么?

非常感谢.

编辑:

这里的答案WPF:在用户拖动后触发事件的滑块对我没有帮助,因为它是数据模板中生成的滑块,事件与我无关.

c# wpf

2
推荐指数
1
解决办法
2826
查看次数

标签 统计

wpf ×2

c# ×1

slider ×1

xaml ×1