原文:
使 wpf 支援觸控板的橫向滾動
微軟終於開始學蘋果一樣好好做觸控板了(就是鍵盤空格鍵下面那一大塊)。然而鑑於以前沒有好好做,以至於 wpf 程式甚至都沒有對觸控板的橫向滾動提供支援(豎向滾動是直接使用了mousewheel
,汗……)。但有些功能真希望能夠支援橫向滾動!
本文將介紹讓觸控板支援橫向滾動的方法,本質上也是用mousewheel
,但卻支援了橫向。
▲ 精確式觸控板
我們需要從 windows 的視窗訊息中獲取wm_mousehwheel
訊息。對,就是滑鼠滾輪訊息!以前我們只取了縱向資料,現在我們要取橫向資料。
首先,我們需要能夠監聽得到訊息才行。重寫window
的onsourceinitialized
方法可以開始監聽訊息;如果**沒辦法寫到window
中,可以通過window.getwindow(dependencyobject)
獲取到視窗例項後監聽它的sourceinitialized
事件。如果拿不到這樣的時機,則只要在任何sourceinitialized
之後的時機(比如loaded
)都可以寫下面方法內部的兩行**。
protected
override
void
onsourceinitialized(eventargs e)
private intptr hook(intptr hwnd, int msg, intptr wparam, intptr lparam, ref
bool handled)
接下來,我們開始處理wm_mousehwheel
:
const
int wm_mousehwheel = 0x020e;
private intptr hook(intptr hwnd, int msg, intptr wparam, intptr lparam, ref
bool handled)
return intptr.zero;
}///
/// 取指標所在高位數值。
///private
static
inthiword(intptr ptr)
////// 取指標所在低位數值。
///private
static
intloword(intptr ptr)
private
void
onmousetilt(int tilt)
onmousetilt
中就可以寫我們觸控板橫向滾動的處理**。
以上**都可以封裝成通用的方法,在onmousetilt
中丟擲乙個類似於mousewheel
一樣的事件是非常好的選擇。
微軟的 microsoft sculpt comfort mouse 滑鼠滾輪也是支援橫向滾動的,以上方法也可以支援。
使 WPF 支援觸控板的橫向滾動
微軟終於開始學蘋果一樣好好做觸控板了 就是鍵盤空格鍵下面那一大塊 然而鑑於以前沒有好好做,以至於 wpf 程式甚至都沒有對觸控板的橫向滾動提供支援 豎向滾動是直接使用了mousewheel,汗 但有些功能真希望能夠支援橫向滾動!本文將介紹讓觸控板支援橫向滾動的方法,本質上也是用mousewheel,...
Ubuntu的觸控板
在使用觸控板時,老是出現打字的誤觸問題,簡直神煩,通過一通搜尋找到解決防範 方法有三種 1.安裝touchpad indicator 這個因為好久的專案,貌似在滑鼠插拔時有bug sudo add apt repository ppa atareao atareao sudo apt update ...
macbook觸控板和滑鼠的滾動方向分開設定
好了,接下來有興趣的話就看下方介紹吧。蘋果macbook的使用者都知道,mac自帶的觸控板非常好用,不僅支援多手勢操控,而且手感極佳,使用流暢。但是如果對滑鼠的焦距有高有求的使用者來說 例如 需要使用ps的設計師 那觸控板的劣勢就顯露了。所以很多設計者會使用外設滑鼠,這時就有乙個新問題產生 如果你是...