WPF鼠标事件简介
2013-05-21 10:00
337 查看
主要有以下几种事件:
主要事件 | 子事件 | 触发条件 | |
MouseHover | 鼠标悬停在控件发生 | ||
MouseLeave | 鼠标离开控件时发生 | EventHandler | |
MouseEnter | 鼠标进入控件时发生 | EventHandler | |
MouseMove | 鼠标移动过程中重复发生 | MouseEventHandler | |
MouseDown | 鼠标键按下时发生 | MouseEventHandler | |
MouseLeftButtonDown | 鼠标左键按下时发生 | ||
MouseRightButtonDown | 鼠标右键按下时发生 | ||
MouseUp | 鼠标键松开时发生 | MouseEventHandler | |
MouseLeftButtonUp | 鼠标左键松开时发生 | ||
MouseRightButtonUp | 鼠标右键松开时发生 | ||
MouseWheel | 鼠标滚轮滚动时发生 | MouseEventHandler |
发生顺序:
鼠标事件按以下顺序发生:MouseEnter
MouseMove
MouseHover / MouseDown / MouseWheel
MouseUp
MouseLeave
与组件的绑定
组件名称.事件名称+=new System.EventHandler(事件名称);OR 组件名称.事件名称+=new System.MouseEventHandler(事件名称);
鼠标事件使用条件
某些控件的功能增强: TreeView里面元素的拖动或者自定义控件的许多功能: flash的时间轴
控件内拖动功能举例:
l 获得MouseDown时position。l 在 MouseMove中检查鼠标左键按下情况 和 鼠标移动情况。
l 把移动的举例和系统提供的SystemParameters.MinimumHorizontalDragDistance比较
如:
Math.Abs(now.X-start.X)>SystemParameters.MinimumHorizontalDragDistance
l 在MouseUp中根据左键的释放情况,判断释放拖动完成,然后做相应处理。
特殊问题解决
我们在编写程序代码过程中可能遇到某些鼠标事件完全不被触发的情况,如果你的MouseDown不触发,那么你可以试试PreviewMouseDown事件,其他事件类似,具体什么原因,我也不清楚,感觉MouseDown 与 PreviewMouseDown是两套独立的事件链,互相不影响。MouseMove的触发不是按固定位移量触发的,(例如:鼠标滑动选择元件,若鼠标移动太快,某些被划过的元件就不被选择了),所以某些情况下在MouseMove里处理 不太可靠。
相关文章推荐
- WPF鼠标事件简介
- WPF鼠标事件简介
- 【WPF】【MVVM】把鼠标事件写到Controller层
- [WPF] 为Style 里的button添加鼠标点击响应事件
- WPF鼠标事件
- WPF 鼠标事件
- WPF中对鼠标事件转换为命令处理模式的鼠标位置参数传递及EventArgs传递
- WPF中的鼠标事件详解
- WPF中C#代码触发鼠标点击事件
- [转]鼠标事件简介
- WPF之鼠标事件
- wpf Canvas 对鼠标事件不响应的解决办法
- jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
- jQuery移动页面开发中的触摸事件与虚拟鼠标事件简介
- WPF,强制捕获鼠标事件,鼠标移出控件外依然可以执行强制捕获的鼠标事件
- 跟着小王学习wpf之十二 Wpf中的鼠标事件详解
- WPF listviewItem 鼠标双击事件
- WPF滚动条嵌套,响应鼠标滑轮事件的处理
- 模拟鼠标键盘事件的工具简介--xdotool
- WPF/E CTP Quick Start - 第十部分:脚本和鼠标事件(翻译)