This documentation is archived and is not being maintained.

KeyStates Enumeration

Specifies constants that define the state of a key.

This enumeration has a FlagsAttribute attribute that allows a bitwise combination of its member values.

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

public enum KeyStates : byte
/** @attribute FlagsAttribute() */ 
public enum KeyStates
public enum KeyStates
<object property="EnumerationValue" .../>

 Member nameDescription
DownThe key is pressed. 
NoneThe key is not pressed. 
ToggledThe key is toggled. 

The KeyStates class is a bit field enumeration. Therefore, a key can be in multiple states. For example, a key could be in the Down state as well as in the Toggled state. Use bit operations to determine the exact state or states the key is in.

The following example changes the color of a Button if the KeyStates of the key passed in the KeyEventArgs is Down. The state of the key is determined by using a bitwise AND operation. The same technique can be used to determine whether a key has multiple states, such as being in the Toggled state and the Down state.

// 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 98, Windows Server 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

The Microsoft .NET Framework 3.0 is supported on Windows Vista, Microsoft Windows XP SP2, and Windows Server 2003 SP1.

.NET Framework

Supported in: 3.0