我有一個菜單鍵盤快捷鍵和文本框的應用程序。當文本框有焦點時,我希望鍵盤快捷鍵被禁用,但我無法找到一個簡單的方法來做到這一點。我可以處理文本框的PreviewKeyDown事件,但發送KeyDown事件不會導致TextInput事件觸發,所以我必須自己手動觸發TextInput事件,並且必須確保每個文本框都覆蓋PreviewKeyDown事件並創建一個TextInput事件。如何禁止WPF中的菜單鍵盤快捷鍵KeyDown處理?
這是抑制菜單鍵盤快捷方式的唯一方法,當文本框有焦點或有另一種方式不容易出錯?
編輯:
下面是我添加了鍵盤快捷鍵:
var kgc = new NuiWpfCore.Input.UnrestrictedKeyGestureConverter(); // allows gestures without modifier keys
var result = kgc.ConvertFromString(s) as NuiWpfCore.Input.UnrestrictedKeyGesture;
m_KeyBinding = new KeyBinding();
m_KeyBinding.Command = KeyBindingCommand;
m_KeyBinding.Modifiers = result.Modifiers;
m_KeyBinding.Key = result.Key;
m_Parent.InputBindings.Add(m_KeyBinding); // m_Parent is of type UIElement
請參閱我對原始問題的編輯。 –
看到我的迴應與編輯。 –
我的命令最初並不是一個RoutedCommand,而是將其更改爲RoutedCommand並按照您的建議解決了我的問題! –