我目前正在开发一个包含两个组件的项目。功能区和 RichTextBox (System.Windows.Controls.RichTextBox)。
我面临一个问题,即 ASCII 代码(例如 alt+123 是 '{')输入没有得到反映,因为按下 Alt 会触发键提示命令。特别是使用 Ribbon,有一个由 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 部分不会命中。它工作了几次,让我兴奋。但是,只有当我破坏代码并即时修改并运行它时,它才有效。如果我重新编译所有内容并运行程序,它就会回到根本不点击代码的原始状态(弹出键提示)。任何建议表示赞赏。