WPF: Добавить в приложение поддержку горячих клавиш

В Windows Forms добавить shortcut для пункта меню можно было так:
в свойствах для пункта меню нужно было выбрать нужный toolStripMenuItem (например Exit), вызвать его свойства, нажав на нем правую кнопку мыши и выбрав Properties, и в Свойствах найти пункт Text. Далее в тексте добавить знак ‘&’ перед буквой с горячей клавишей. Например для Exit это поле выглядело бы так: ‘E&xit‘.
Получается так:
WPF: Добавить в приложение поддержку горячих клавиш

В случае же с Windows Presentation Foundation (WPF) все почему-то по другому.
Здесь нужно в свойствах этого элемента найти пункт Header и там ввести E_xit.
То же самое можно было ввести в редакторе XAML, если это удобнее:

<MenuItem x:Name="exitToolStripMenuItem" Header="E_xit"/>

Почитал статью про горячие клавиши в WPF и мне показалось, что автор слишком все усложняет, поэтому я стал дальше искать информацию на эту тему. Если в приложении достаточно использование стандартных горячих клавиш, то можно использовать класс ApplicationCommands:

Для начала в XAML нужно прописать привязку горячих клавиш и вызываемых команд:

 <Window x:Class="WpfHotKeysDemo.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">

    <Window.CommandBindings>
        <CommandBinding Command="ApplicationCommands.New"
                        Executed="Executed_New"
                        CanExecute="CanExecute_New"/>
    </Window.CommandBindings>
    <Window.InputBindings>
        <KeyBinding Command="ApplicationCommands.New"
                    Gesture="Ctrl+N"/>
    </Window.InputBindings>
    
    <Grid>
        <Label Content="Горячая клавиша [Ctrl+N]" />
    </Grid>
</Window>

Теперь прописать код для обработки этих команд:

public void Executed_New(object sender, ExecutedRoutedEventArgs e)
{
    MessageBox.Show("Вызов команды 'New'");
}

public void CanExecute_New(object sender, CanExecuteRoutedEventArgs e)
{
    e.CanExecute = true;
}

Еще можно комбинацию клавиш добавить следующим образом:

<Window.InputBindings>
<KeyBinding Command="Save" Key="S" Modifiers="Control"/>
</Window.InputBindings>