1. 程式人生 > >C#中WPF響應鍵盤事件

C#中WPF響應鍵盤事件

WPF中的鍵盤事件用法如下:

  1. 在需要監聽鍵盤事件的介面XAML中註冊鍵盤按下的事件KeyDown=”LoginWindow_KeyDown”。

  <Window x:Class="WpfAcef.MainWindow"

        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        Title="MainWindow" Height="350" Width="525"
        KeyDown="MainWindows_Keydown

">

    <Grid x:Name="ContentGrid">
        
    </Grid>

</Window>

2、後臺程式碼處理對不同鍵盤的響應:

private void MainWindows_Keydown(object sender, KeyEventArgs e)
        {

            //判斷使用者的按鍵是否為Alt+F4
            if (e.KeyStates == Keyboard.GetKeyStates(Key.F4) && Keyboard.Modifiers == ModifierKeys.Alt)
            {
                e.Handled = true;
                MessageBox.Show("請輸入解鎖密碼!");
            }
            
        }

需要注意的是引數時System.Windows.Input.KeyEventArgs 而不是System.Windows.Forms.KeyEventArgs!

相關推薦

C#WPF響應鍵盤事件

WPF中的鍵盤事件用法如下: 在需要監聽鍵盤事件的介面XAML中註冊鍵盤按下的事件KeyDown=”LoginWindow_KeyDown”。   <Window x:Class="WpfAcef.MainWindow"         xmlns="http://

VS程式設計,WPF響應鍵盤事件、檢測鍵盤鍵是否按下的一種方法

鍵盤事件有四個,PreviewKeyDown、PreviewKeyUp、KeyDown、KeyUp, 在事件中,對引數e的Key屬性進行判定。 這裡以一個TextBox的文字控制元件為例。檢測到回車鍵給予提示。 1、在鍵盤事件中,檢測單個按鍵 1、前臺增加文字控

C# winform 程式響應鍵盤事件

在winform程式中給form添加了keyup事件,但是程式卻不響應鍵盤事件,解決辦法有兩種: 第一種解決方法是: 重寫Form基類的ProcessCmdKey(ref Message msg, Keys keyData)方法。 1 2 3 4 5 6 7 8 9 10

C#/WPF鍵盤事件

需求:按下回車鍵,觸發事件。 WPF中的鍵盤事件用法如下: 在需要監聽鍵盤事件的介面XAML中註冊鍵盤按下的事件KeyDown=”LoginWindow_KeyDown”。 後臺程式碼處理對不同鍵盤的響應: private void Login

C#Form的Paint事件響應方法與過載虛方法OnPaint()的區別

Form_Paint()方法是Paint事件的響應方法,OnPaint是可過載的虛方法,OnPaint方法是呼叫Paint事件的,用哪一個,效果是一樣,就看那一個方便了內部是這樣實現的: protected virtual OnPaint(PaintEventArgs

Qt在Widget響應鍵盤事件

問題:我想在Qt框架下,響應鍵盤事件(比如回車)。解決辦法:重寫keyPressEvent這個方法標頭檔案:#ifndef B_BAGD_H #define B_BAGD_H #include <QDockWidget> #include <QKeyEve

響應鍵盤事件__2018.11.04

Version:1.0 StartHTML:000000212 EndHTML:000055788 StartFragment:000000914 EndFragment:000055731 StartSelection:000001038 EndSelection:000055706 Source

分分鐘用上C#的委託和事件

  每一個初學C#的程式猿,在剛剛碰到委託和事件的概念時,估計都是望而卻步,茫然摸不到頭腦的。百度一搜,關於概念介紹的文章大把大把的,當然也不乏深入淺出的好文章。可看完這些文章,大多數新手,估計也只是信心滿滿的覺得自己看懂了,一旦要在自己的程式中用上委託和事件,就傻眼了,根本不知道什麼情況下該用,也不知

C#的委託和事件---通俗易懂

每一個初學C#的程式猿,在剛剛碰到委託和事件的概念時,估計都是望而卻步,茫然摸不到頭腦的。百度一搜,關於概念介紹的文章大把大把的,當然也不乏深入淺出的好文章。可看完這些文章,大多數新手,估計也只是信心滿滿的覺得自己看懂了,一旦要在自己的程式中用上委託和事件,就傻眼了,根本不知

淺談C#的委託、事件與非同步

從剛接觸c#程式設計到現在,差不多快有一年的時間了。在學習過程中,有很多地方始終似是而非,直到最近才弄明白。 本文將先介紹用法,後評斷功能。 一、委託 基本用法: 1.宣告一個委託型別。委託就像是‘類'一樣,聲明瞭一種委託之後就可以建立多個具有此種特徵的委託。(特徵,指的是返回值、引數型

C#WPF程式的XAML名稱空間理解

一、什麼是名稱空間         XAML 名稱空間實際上是 XML 名稱空間概念的擴充套件。 指定 XAML 名稱空間的技術依賴於 XML 名稱空間語法、使用 URI 作為名稱空間識別符號的約定、使用字首提供從同一標記源中引用多個名稱空間的方法,諸如此類。XML 名稱

C# 的委託和事件(轉)

引言 委託 和 事件在 .Net Framework中的應用非常廣泛,然而,較好地理解委託和事件對很多接觸C#時間不長的人來說並不容易。它們就像是一道檻兒,過了這個檻的人,覺得真是太容易了,而沒有過去的人每次見到委託和事件就覺得心裡別(biè)得慌,混身不自在。本文中,我將通過兩個範例由淺入深地講述什麼

【轉載】C# 的委託和事件(詳解:簡單易懂的講解) C# 的委託和事件(詳解)

本文轉載自http://www.cnblogs.com/SkySoot/archive/2012/04/05/2433639.html C# 中的委託和事件(詳解) C# 中的委託和事件

C# 的委託和事件

 更新記錄:2007年  9月28日:事件的由來  引言 委 託 和 事件在 .Net Framework中的應用非常廣泛,然而,較好地理解委託和事件對很多接觸C#時間不長的人來說並不容易。它們就像是一道檻兒,過了這個檻的人,覺得真 是太容易了,而沒有過去的人每次見到委託和事

【轉】【UNITY3D 遊戲開發之七】C# 的委託、事件、匿名函式、Lambda 表示式

"委託是一個類,它定義了方法的型別,使得可以將方法當作另一個方法的引數來進行傳遞,這種將方法動態地賦給引數的做法,可以避免在程式中大量使用If-Else(Switch)語句,同時使得程式具有更好的可擴充套件性。" from: http://www.himigame.com/

C# 的委託和事件(詳解)

C# 中的委託和事件        委託和事件在 .NET Framework 中的應用非常廣泛,然而,較好地理解委託和事件對很多接觸 C# 時間不長的人來說並不容易。它們就像是一道檻兒,過了這個檻的人,覺得真是太容易了,而沒有過去的人每次見到委託和事件就覺得心裡堵得慌,渾身不自在。本章中,我將由淺入深

delphi如何響應鍵盤的組合鍵(如:ctrl k)

1:varHot: boolean;procecure form1.formkeydown(.....);beginif (key = VK_K) and (ssShift in shift) thenif hot thenbegin//處理ctrl kkhot := fal

MFC MDI 響應鍵盤事件

方法很簡單,在類檢視選中主執行緒的類(MDI中繼承CWinApp的那個類),重寫PreTranslateMessage函式。 //鍵盤輸入控制,F2-開始測試,F3-停止測試 BOOL CSysApp::PreTranslateMessage(MSG* pMsg) {

android應用響應按鍵事件(俗稱攔截按鍵)

在應用中重寫 dispatchKeyEvent函式:例項中為遮蔽KEYCODE_ENTER事件 public boolean dispatchKeyEvent(KeyEvent event) { int keyCode = event.getKeyCode();if(K

快速理解C#的委託與事件

以下內容只是個人理解,僅供參考。 什麼是委託? 先看最簡單的委託例子: namespace DelegateTest { public delegate void MessageDelegate(string name); class Program