これらの特別なキーは修飾キーと呼ばれ、これにより、なぜ機能しないのかが明確になります。修飾キーは、Shift + Lが大文字の「L」を作成し、Lキーのみが小文字の「l」を作成するように、特定のキーの動作を「変更」することです。ユーザーがこれらの種類のボタンを押したときに実際のアクションが発生するのを見ることに慣れていないため、実際のロジックにModifierkeysを使用すると、問題が発生し、イライラする可能性があります。しかし、Altキーを押したときにMenuItemsを強調表示するなど、これが理にかなっている場所があることに同意します。
しかし、実際の問題については、codebehindとOnKeyDown / OnKeyUpまたはPreviewイベントを使用して、この動作を実装できます。
protected override void OnKeyDown(KeyEventArgs e)
{
if(e.SystemKey == Key.LeftAlt)
{
myMenu.Visibility = Visibility.Visible;
// e.Handled = true; You need to evaluate if you really want to mark this key as handled!
}
base.OnKeyDown(e);
}
もちろん、couはこのコードでコマンドを実行することもできます。