KeyDown
Applications sometimes need to access keyboard commands. With the KeyDown
event handler (in C# code) we can listen for key presses, like "function keys" like F5 for example.
Let us begin with a new WPF program. Please add a KeyDown
event handler to the Window element. Let Visual Studio create Window_KeyDown
by pressing Enter.
Here we add some code to the event handler. In the Window_KeyDown
method, the KeyEventArgs
is important. From it, we access the key that was pressed.
Key.F5
constant.<Window x:Class="WpfApplication25.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" KeyDown="Window_KeyDown"> </Window>using System.Windows; using System.Windows.Input; namespace WpfApplication25 { /// <summary> /// Interaction logic for MainWindow.xaml /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void Window_KeyDown(object sender, KeyEventArgs e) { // ... Test for F5 key. if (e.Key == Key.F5) { this.Title = "You pressed F5"; } } } }
KeyBinding
More complicated key presses are handled with "gestures" in WPF. We can specify commands with KeyBinding
elements. On MenuItems
, we can specify InputGestureText
.
KeyDown
method, we cannot easily handle complex commands. A KeyBinding
is needed.With KeyDown
, we add keyboard commands to WPF programs. We used the Key property to test a KeyEventsArg
object. For complex keyboard requirements, KeyBindings
are needed.