WPF 鼠标事件

 鼠标的信息由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)