1. 程式人生 > >WPF 滑鼠事件

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方法的說明

遺憾的是,似乎並沒有明確說明哪些控制元件有這樣的處理。