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方法的說明
遺憾的是,似乎並沒有明確說明哪些控制元件有這樣的處理。