2010-08-12 28 views
4

我試圖在WPF KeyGesture類的幫助下執行一些WPF命令。應用程序工作正常,直到我指定一個組合鍵Shift修飾符和字母數字鍵。例如,下面的實例:new KeyGesture(Key.M, ModifierKeys.Shift)拋出異常:KeyGesture不接受Shift +字母數字組合鍵

'Shift + M' 不支持KeyGesture鍵和改性劑的組合。

移位改性劑將不與數字工作太(例如 + )。然而,移位 + 插入移位 + F1組合工作完美無缺。只要把它清晰,有與 + Ctrl鍵 + Alt鍵 Alt鍵+ 和都沒有問題。

爲什麼決定禁止Shift + [字母數字]手勢?它與輸入大寫字母有什麼共同之處嗎?有沒有與WPF指揮系統相一致的解決方法? (注:我並不想使用 + 中號姿態,卻使文本框,而是當沒有文本框處於焦點

我似乎找到了唯一一個論壇進入,這個問題引發了。文檔搜索失敗。 Shift + [字母數字]是否對開發人員顯而易見?

+1

什麼是地獄?爲什麼?我剛剛遇到了這個問題。麻煩的是,我試圖在傳統(讀取:賺錢)應用程序中複製功能。 – 2011-05-09 16:22:38

+0

@lainMH:那麼,我發佈這個問題的時候,我對這個問題的知識並沒有改變。我相信這是因爲它與大多數應用程序中的文本插入衝突。您可以在窗口級別處理Shift +組合鍵。但我認爲更好的解決方案就是避免Shift +鍵手勢,因爲它只能在特定情況下使用。如果文本框有焦點,按鍵應被視爲僅用於字符輸入。因此,綁定到Shift +鍵的命令會不時發揮作用,導致客戶瘋狂。 – pbalaga 2011-05-12 09:40:07

回答

3

看到這麼8251​​043 - 基本上它不再是一個「姿態」,其按鍵綁定 Create a simple, unmodified key binding in WPF

+0

它的工作原理,謝謝。真是太遺憾了,它似乎沒有被記錄在任何地方。作爲附加說明 - 鍵和修飾符必須通過屬性賦值來設置(如引用的SO 8251043所示),並且* not *傳遞給構造函數。在後一種情況下,它被轉換爲'KeyGesture'並失敗。 – pbalaga 2012-12-18 11:04:11

相關問題