我目前正在研究一個有兩個組件的項目。功能區和RichTextBox(System.Windows.Controls.RichTextBox)。帶有功能區的wpf富文本框的Alt +數字(ASCII碼)輸入
我正面臨一個問題,即ASCII代碼(例如alt + 123是'{')輸入沒有得到體現,因爲按下Alt會觸發keytip命令。特別是使用功能區時,有一個由Alt +編號觸發的快速訪問工具欄。
有沒有解決這個問題的建議?或者我應該放棄richtextbox的ASCII碼輸入?
非常感謝您提前。
編輯:這是我正在
protected override void OnKeyDown(KeyEventArgs e)
{
if (e.Key == Key.NumPad0 ||
e.Key == Key.NumPad1 ||
e.Key == Key.NumPad2 ||
e.Key == Key.NumPad3 ||
e.Key == Key.NumPad4 ||
e.Key == Key.NumPad5 ||
e.Key == Key.NumPad6 ||
e.Key == Key.NumPad7 ||
e.Key == Key.NumPad8 ||
e.Key == Key.NumPad9)
{
if (Keyboard.IsKeyDown(Key.LeftAlt) || Keyboard.IsKeyDown(Key.RightAlt))
return;
if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
return;
}
base.OnKeyDown(e);
}
Ctrl鍵的部分將打在調試,但Alt鍵部分都打不到的辦法。它工作了好幾次,讓我興奮不已。但是,只有當我破解代碼並在運行中修改並運行代碼時,它纔會起作用。如果我重新編譯所有內容並運行該程序,它將回到原始狀態(根本沒有觸發代碼)(KeyTip彈出)。 任何建議表示讚賞。
非常感謝您的回覆。 – 2012-07-14 19:08:25
我想過重寫OnKeyDown。但是,我無法想出成功保持KeyTip行爲並輸入ASCII輸入的方式。如果以下輸入是ASCII碼,我只想允許alt輸入而不需要使用由Alt觸發的快捷方式。 – 2012-07-14 19:16:12
@ publicst119您可以改爲檢查Keyboard.IsKeyDown(Key.NumPad0)等,然後頂部的數字仍然適用於色帶命令。 – 2012-07-14 19:22:59