2014-06-19 47 views

回答

3

我不認爲這些鍵有單獨的枚舉。這些是Key.D1 to Key.D0Key.Oem3(對於蒂爾達)。您可以通過在代碼中的任意位置檢查Keyboard.Modifiers == ModifierKeys.Shift來識別哪一個被按下。

即如果按下的鍵是Key.D1Keyboard.ModifiersModifierKeys.Shift那意味着'!'按下

+0

只要確保使用'(e.KeyboardDevice.Modifiers&ModifierKeys.Shift)== ModifierKeys.Shift'檢查修飾符,因爲可以一次按下多個修飾鍵。 – Atomosk

+0

如果我使用例如'if(Keyboard.IsKeyDown(Key.LeftCtrl)|| Keyboard.IsKeyDown(Key.RightCtrl)){// Code}'檢查修飾符,有什麼區別?僅僅是爲了簡化代碼嗎? –

0

如何到鍵盤上運行的應用程序,按鍵和檢查KeyEventArgs.Key的價值?

private void MainWindow_OnKeyDown(object sender, KeyEventArgs e) 
{ 
    Console.WriteLine(e.Key); 
} 

顯示tilda的Oem3。

+0

它總是檢測'LeftShift + Something',而不是'Key'名稱本身。或者,也許這就是我們需要訪問它的方式,因爲它沒有特定的名稱? –