上一篇鳥文中,老周通過史無前例的代碼向各位 demo 了訪問鍵的用法(即 Alt + 某某)。不過,大伙伴們一定會發(fā)現(xiàn),訪問鍵畢竟限制較大,不太靈活,也不好發(fā)揮,于是就需要自定義快捷鍵了。

其實(shí),自定義快捷鍵也不是什么很玄的東西,老周向來不喜歡故弄玄虛,說白了嘛,就是對鍵盤事件的處理。UWP 與 WPF 有相似處,但也有差異。這些差異是不影響咱們編程的,要是有些差異你就覺得有困難了,那證明你的編程水平實(shí)在太差,趕緊回家給黨組織寫 10 份 800000 字的檢討。

既然是鍵盤事件了,你首先閉上眼睛,一邊養(yǎng)神一邊想想,鍵盤事件會涉及到什么關(guān)聯(lián)的數(shù)據(jù)呢。首先,程序必須知道哪個鍵被操作了,是吧,而每個鍵都有內(nèi)置的碼位的,如虛鍵碼,這個好辦,Windows.System.VirtualKey 枚舉已經(jīng)為我們定義好了,所以這個你不必?zé)┬?;接著,我們會想到,一個鍵會有啥操作呢?是了,無非就是按下和松開,即 Key Down和Key Up。

只要以上問題你想通了,那事情就很好弄了,比吃栗子還簡單。

 

UWP的SDK 給我們準(zhǔn)備了兩個鍵盤事件:KeyDown在鍵被按下時發(fā)生,KeyUp在鍵彈起時發(fā)生。至于要處理哪個事件,或者是否兩個都處理,那就看你要做什么了。

要注意,這兩個鍵盤事件出現(xiàn)在兩個地方:

1、UIElement 類公開了這兩個事件,這是用于處理用戶界面上的元素的鍵盤行為的,但不包括當(dāng)前窗口。

2、要在當(dāng)前窗口層面上處理鍵盤事件,就要用到 CoreWindow 類,該類也公開這兩個鍵盤事件。調(diào)用 GetForCurrentThread 靜態(tài)方法,可以獲取到當(dāng)前窗口的實(shí)例。

&

網(wǎng)友評論