0
我有一個使用PreviewKeyDown
一個應用程序捕獲CTRLX擊鍵(其中X
是任何字母)沿着線:如何捕獲WPF/C#中的CTRL-BACKSPACE?
Key key = (e.Key == Key.System ? e.SystemKey : e.Key);
if (e.KeyboardDevice.Modifiers == ModifierKeys.Control) {
switch (key) {
case Key.A: keyStroke = 0x01; break;
case Key.B: keyStroke = 0x02; break;
:
因爲似乎沒有成爲退格鍵擊,我捕捉的PreviewTextInput
(與非CTRL擊鍵一起,從而避免手工試圖映射按鍵字符):
private void Window_PreviewTextInput(object sender, TextCompositionEventArgs e) {
Char ch = e.Text.ToCharArray()[0];
if ((ch >= (Char)0x01) && (ch <= (Char)0x7e)) {
// Do something with character.
}
}
但是,我需要能夠捕獲用戶按下CTRLBACKSPACE。我很困惑,因爲PreviewKeyDown
似乎並不知道backspace,並且TextCompositionEventArgs
事件似乎沒有攜帶關鍵狀態(如CTRL
或)。
什麼是最好的方式(或者更確切地說,任何方式)攔截CTRLBACKSPACE?
PreviewKeyDown檢測回退給我。如果我在你的switch語句中添加一個Key.Back的情況,它就會像我期望的那樣被調用。 – 2010-10-12 11:31:14
好的謝謝。我添加了一個答案。而且,我確定那把鑰匙的命名也讓我知道了。 :) – 2010-10-12 12:14:20