私は現在、2 つのコンポーネントを持つプロジェクトに取り組んでいます。リボンと RichTextBox (System.Windows.Controls.RichTextBox)。
Alt キーを押すとキーチップ コマンドがトリガーされるため、ASCII コード (例: alt+123 は '{') の入力が反映されないという問題に直面しています。特にリボンでは、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 がポップアップする) 元の状態に戻ります。どんな提案でも大歓迎です。