WPF獲取鍵盤狀態(如WPF組合鍵)


對於鍵盤事件(PreviewKeyDown,KeyDown,PreviewKeyUp,KeyUp)獲取組合鍵等鍵盤信息比較容易

1、KeyEventArgs對象包含一個KeyStates屬性,該屬性反映觸發事件的鍵的屬性

2、KeyboardDevice屬性為鍵 盤上的所有鍵提供了相同的信息,自然也提供了一個KeyboardDevice類的一個實例。它的屬性包括當前是哪個元素具有焦點,以及當事件發生時按下了哪些修飾鍵(Modifiers)包括Shift、Ctrl、Alt鍵,並且使用位邏輯來檢查它們的狀態.

 


   private  void textBox_KeyDown_1( object sender, KeyEventArgs e)
        {
             if ((e. KeyboardDevice.Modifiers  &  ModifierKeys.Control) ==  ModifierKeys.Control)
            {
                MessageBox.Show( " 您按下了Control鍵 ");
            }
        }

對於檢測具有開關功能的鍵,可以使用Keyboard類下的IsKeyToggled()方法來檢測,例如:

 

  private  void textBox_KeyDown_1( object sender, KeyEventArgs e)
        {

             if (Keyboard.IsKeyDown(Key.NumLock))
            {
                MessageBox.Show( string.Format( " 您按下了NumLock鍵,當前狀態為:{0} "Keyboard. IsKeyToggled(Key.NumLock)));
            }
        }

當然KeyboardDevice方法也提供了IsKeyDown方法,IsKeyUp方法,IsKeyToggled方法和GetKeyStates方法,例如:


if (e.KeyboardDevice.IsKeyDown(Key.NumLock))
{
      MessageBox.Show( string.Format( " 您按下了NumLock鍵,當前狀態為:{0} ", e.KeyboardDevice.IsKeyToggled(Key.NumLock)));
}


 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM