This documentation is archived and is not being maintained.

KeyEventArgs.KeyStates Property

Gets the state of the keyboard key associated with this event.

Namespace:  System.Windows.Input
Assembly:  PresentationCore (in PresentationCore.dll)

public KeyStates KeyStates { get; }
Members of this class are either not typically used in XAML, or cannot be used in XAML.

Property Value

Type: System.Windows.Input.KeyStates
The state of the key.

A key can be in both the up and toggled states or the down and toggled states. For this reason, determining whether a key is up or down is not as simple as checking the KeyStates value as a numeric value. Instead, you should check the value by treating it as a flag enumeration. Use an AND comparison of the first bit. Alternatively, use the helper properties IsUp, IsDown, and IsToggled to determine whether a given key is up, down, or toggled.

The following example checks whether a key associated with an instance of KeyEventArgs is down by performing a bitwise AND comparison on the KeyStates of the key and the Down enumeration value.

// A bitwise AND operation is used in the comparison. 
// e is an instance of KeyEventArgs. 
// btnDown is a Button. 
if ((e.KeyStates & KeyStates.Down) > 0)
{
    btnDown.Background = Brushes.Red;
}

Windows 7, Windows Vista, Windows XP SP2, Windows Server 2008 R2, Windows Server 2008, Windows Server 2003

The .NET Framework and .NET Compact Framework do not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.

.NET Framework

Supported in: 3.5, 3.0
Show: