问题描述
这个问题很多人都应该考虑过不过我来说说我的解决方法吧!就用MediaPlayer控件来举例:前面的问题比较容易解决,就是用一个Timer利用Tick事件去不停的获取正在播放的多媒体文件的当前播放位置。贴上代码:然后后面的问题解决方案可能很多人会想到用Slider的ValueChanged事件去写,可是这个拖拽并不是唯一一个触发ValueChanged事件的,在播放过程中Slider的Value属性一直在变化,很多人就看到了冲突。这个问题我是这样解决的,其实也是很简单的,我们可以用MouseMove事件去写,不过有发现了问题,MouseMove事件也就是说只要你的鼠标放在Slider上就会触发,那只要我们的鼠标移动到了Slider上,就会出现和上面用ValueChanged事件写一样的冲突,所以我们还需要进一步确定,你这个拖拽是唯一的,可以控制拖放进度的事件,只需要在MouseMove事件内判断鼠标左键是否按下。贴上代码:
解决方案
解决方案二:
补上第一张图。
解决方案三:
谢谢楼主,受教了~
解决方案四:
哦,楼主,我最近也碰到类似的问题,经过一番查找,系统提供的Slider下的PreviewMouseUp事件,应该也能提供差不多的作用。再次谢谢您的思路。
解决方案五:
引用3楼zp062108112的回复:
哦,楼主,我最近也碰到类似的问题,经过一番查找,系统提供的Slider下的PreviewMouseUp事件,应该也能提供差不多的作用。再次谢谢您的思路。
恩恩~~有帮助就好~~~
解决方案六:
请问一下怎么能鼠标点击一下slider就能让视频播放进度跳转呢?
解决方案七:
设置一个标志位,在SLIDER的MOUSEDOWN中置为true,MOUSEUP事件中置为false。在SLIDER的VALUECHANGED事件中判断这个标志位是否为true来决定执行的操作。
解决方案八:
引用6楼liujiong63的回复:
设置一个标志位,在SLIDER的MOUSEDOWN中置为true,MOUSEUP事件中置为false。在SLIDER的VALUECHANGED事件中判断这个标志位是否为true来决定执行的操作。
我是不想通过拖拽Thumb实现播放进度的控制只是点击任意地方的进度条就可以跳转
解决方案九:
引用7楼iris1023的回复:
Quote: 引用6楼liujiong63的回复:
设置一个标志位,在SLIDER的MOUSEDOWN中置为true,MOUSEUP事件中置为false。在SLIDER的VALUECHANGED事件中判断这个标志位是否为true来决定执行的操作。我是不想通过拖拽Thumb实现播放进度的控制只是点击任意地方的进度条就可以跳转
楼上的搞定了吗,我最近也碰到这个问题,求教求指导