如何在Slider中使用MouseLeftButtonDown事件
来源:互联网 发布:知乎日报中不支持阅读 编辑:程序博客网 时间:2024/06/08 13:57
24. 十一月 2009 18:50
MouseLeftButtonDown和MouseLeftButtonUp是两个经常同时使用的事件,最常用到的恐怕就是处理鼠标拖动,这种时候需要在Down事件中CaptureMouse,而在Up事件中Release。但是我在对一个继承Slider的控件这么做的时候却发现MouseLeftButtonUp事件可以正常触发,而MouseLeftButtonDown怎么也不触发。我开始以为是我的其他哪个代码将其捕获了,经人提示,发现原来Slider不支持该事件——同样的还有Button也不支持此事件。原因是Slider在点击中间的滑块(Thumb)和两边的空白处(RepeatButton)的时候该鼠标事件会被吃掉。
查资料后找到两个方法:
1、使用PreviewMouseDown事件代替,该事件发生于MouseLeftButtonDown发生之前,与之相应的还有PreviewMouseUp事件。网上反映该事件可行,不过我没有试过,因为该事件只在WPF中有,Silverlight不支持该事件。
2、使用AddHandler方法,具体代码为:
_globalProgressSlider.AddHandler(Slider.MouseLeftButtonDownEvent, new MouseButtonEventHandler(Slider_MouseLeftButtonDown), true);
注意第三个参数必须是true,它表示你无论如何也要接收这个事件,即使这个事件已经被标记为Handled。这种方法只能在CS文件中写,在xaml中是无法做到的。
- 如何在Slider中使用MouseLeftButtonDown事件
- C#中 MouseLeftButtonDown MouseLeftButtonUp MouseMove 使用
- MouseLeftButtonDown 事件不触发
- MouseLeftButtonDown事件无法触发
- MouseLeftButtonDown事件无法触发
- Button中MouseLeftButtonDown和MouseLeftButtonUp事件无法触发的解决方案
- silverlight中button无法触发MouseLeftButtonDown等事件
- 如何使用Revolution Slider
- 如何使用slider滑动控件
- 使用AJAX后如何在GridView中使用OnClientClick事件
- Flex中如何通过tickValues属性,在程序中设置Slider坐标位置
- 如何在HTML5页面中使用鼠标滚轮事件
- silverlight MouseLeftButtonDown事件总是无法触发
- MouseLeftButtonDown、PreviewMouseLeftButtonDown与路由事件冒泡
- 解决MouseLeftButtonDown与Click事件冲突
- wpf:关于MouseLeftButtonDown事件失效的问题
- 如何在Ubuntu QML应用中实现一个垂直的Slider
- 50个在网站中经常使用的酷感的slider滑块
- platform驱动模型
- FLEX QQ 弹出窗口(消息框)
- OCA 052 通过总结
- 数据泵和EXP导出方式的性能对比
- Oracle体系结构之-物理结构
- 如何在Slider中使用MouseLeftButtonDown事件
- Android如何获得系统(system)权限
- Oracle体系结构之-连接配置结构
- sqlserver查询效率
- android stagefright 播放MP3音频 打印信息分析
- Ubuntu10.10 下安装低版本GCC方法
- 什么是SWFObject,如何使用!
- 数据泵导入性能小释
- JavaScript实现单条信息向上滚动