鼠标的信息由SystemInformation类提供。SystemInformation类的静态属性(节选)
关于鼠标信息
类型 属性 访问方式 说明
bool MousePresent 读取 表示是否安装了鼠标
int MouseButtons 读取 表示鼠标键的个数
bool MouseButtonsSwapped 读取 表示是否交换了键(方便左撇子用户的设置)
关于鼠标滚轮
类型 属性 访问方式 说明
bool MouseWheelPresent 读取 如果存在滚轮则返回true
int MouseWheelScrollLines 读取 每旋转一周所滚动的行数
bool NativeMouseWheelSupport 读取 对应用程序不很重要
鼠标事件
任何特定的鼠标事件都只由一个控件接收,只有在该控件的Enable和Visible属性,均设置为true时,控件才能接收鼠标事件。鼠标事件只由直接位于鼠标光标下的控件接收。
四种基本的鼠标事件
Control 的事件(节选)
事件 方法 委托 参数
MouseDown OnMouseDown MouseEventHandler MouseEventArgs
MouseUp OnMouseUp MouseEventHandler MouseEventArgs
MouseMove OnMouseMove MouseEventHandler MouseEventArgs
MouseWheel OnMousewheel MouseEvetntHandler MouseEventArgs
MouseEventArgs 类的5个只读属性
| 类型 | 属性 | 访问方式 | 说明 |
| int | X | 读取 | 鼠标的水平位置 |
| int | Y | 读取 | 鼠标的垂直位置 |
| MouseButtons | Button | 读取 | 鼠标的一个或多个键 |
| int | Clicks | 读取 | 对于双击返回2 |
| int | Delta | 读取 | 鼠标滑轮的运动 |
X 和Y 是整数,以相对于客户区左上角爱哦的像素数来表示鼠标光标热点的位置,该属性对鼠标的4个事件均有效。
Button属性表示在事件中设计的键,这个属性对MouseWheel事件是无效的。Button属性是一个MouseButtons枚举值(None、Left、Right、Middle等)。
按照WPF的帮助说明,某些控件的路由事件被内部处理了,已经被标记为Handled,自行定义的事件处理代码便不再起作用了,有时候会很郁闷!
不过WPF提供了必要的方法。
1)使用相应的Preview事件。须注意隧道类型的事件是从根元素开始执行的。
2)使用AddHandler添加自定义的路由事件。
MouseDown事件的说明

AddHandler方法的说明

遗憾的是,似乎并没有明确说明哪些控件有这样的处理。
这篇博客介绍了WPF中与鼠标相关的属性和事件,包括SystemInformation类提供的鼠标信息,如MousePresent和MouseButtons等。此外,还详细讨论了鼠标滚轮的存在与功能。文章强调了鼠标事件的接收条件,如控件必须启用且可见,并列举了MouseDown、MouseUp、MouseMove和MouseWheel等基本鼠标事件及其对应的处理方法。对于WPF中控件内部已处理的事件,文章提出了使用Preview事件和AddHandler方法来实现自定义处理的解决方案。

7847

被折叠的 条评论
为什么被折叠?



