If you’re writing a WPF application and need to find the state of the Num Lock, Caps Lock, or Scroll Lock keys, you can use the Keyboard.IsToggled method (introduced in .NET 3.0):

1
2
3
var isNumLockToggled = Keyboard.IsKeyToggled(Key.NumLock);
var isCapsLockToggled = Keyboard.IsKeyToggled(Key.CapsLock);
var isScrollLockToggled = Keyboard.IsKeyToggled(Key.Scroll);

Add this using directive to the top of your class, if it’s not already there:

1
using System.Windows.Input;

Internally, the IsToggled() method checks to see whether or not a KeyStates.Toggled flag is set for the specified key.

1
2
3
4
5
6
7
[Flags]
public enum KeyStates : byte
{
    None = (byte) 0,
    Down = (byte) 1,
    Toggled = (byte) 2,
}