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.