WPF
In WPF gibt es 2 Möglichkeiten auf Tastaturbefehle zu reagieren. Wir gehen hier mal beispielhaft von einer Textbox als GUI Elemt aus, in dem ein Tastaturbefehl abgefangen werden soll.
Keydown Event
XML
<TextBox x:Name="txtTest" KeyDown="txtTest_KeyDown" AcceptsReturn="True" TextWrapping="Wrap"  SpellCheck.IsEnabled="True" Language="de-DE" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" />
Code
private void txtTextIntern_KeyDown(object sender, KeyEventArgs e) { if (e.Key == Key.A &&Keyboard.Modifiers.HasFlag(ModifierKeys.Control)){if (Keyboard.Modifiers.HasFlag(ModifierKeys.Shift))MessageBox.Show("CTRL + SHIFT + A trapped");elseMessageBox.Show("CTRL + A trapped");}}
Als Keybinding
In diesem Beispiel wird auch gezeigt, wie man per Typumwandlung eine Funktion für alle WPF-Elemente mit dem selben Binding nutzen kann.
XML
<TextBox x:Name="txtTextExtern" AcceptsReturn="True" TextWrapping="Wrap" SpellCheck.IsEnabled="True" Language="de-DE" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto"><TextBox.CommandBindings><CommandBinding Command="SelectAll" Executed="SelectAllCommand" /></TextBox.CommandBindings><TextBox.InputBindings><KeyBinding Key="A" Modifiers="Control" Command="SelectAll" /></TextBox.InputBindings></TextBox>
Code
private void SelectAllCommand(object sender, ExecutedRoutedEventArgs e){if (e.Key == Key.A && Keyboard.Modifiers.HasFlag(ModifierKeys.Control)){var obj = (TextBox)sender;obj.SelectAll();}}