使 WPF 支援觸控板的橫向滾動

2021-09-19 22:08:57 字數 1712 閱讀 1676

原文:

使 wpf 支援觸控板的橫向滾動

微軟終於開始學蘋果一樣好好做觸控板了(就是鍵盤空格鍵下面那一大塊)。然而鑑於以前沒有好好做,以至於 wpf 程式甚至都沒有對觸控板的橫向滾動提供支援(豎向滾動是直接使用了mousewheel,汗……)。但有些功能真希望能夠支援橫向滾動!

本文將介紹讓觸控板支援橫向滾動的方法,本質上也是用mousewheel,但卻支援了橫向。

▲ 精確式觸控板

我們需要從 windows 的視窗訊息中獲取wm_mousehwheel訊息。對,就是滑鼠滾輪訊息!以前我們只取了縱向資料,現在我們要取橫向資料。

首先,我們需要能夠監聽得到訊息才行。重寫windowonsourceinitialized方法可以開始監聽訊息;如果**沒辦法寫到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的設計師 那觸控板的劣勢就顯露了。所以很多設計者會使用外設滑鼠,這時就有乙個新問題產生 如果你是...