Keyboard.cs 1.7 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. // --------------------------------------------------------------------------------------------------------------------
  2. // <copyright file="Keyboard.cs" company="OxyPlot">
  3. // Copyright (c) 2020 OxyPlot contributors
  4. // </copyright>
  5. // <summary>
  6. // Provides utility methods related to the keyboard.
  7. // </summary>
  8. // --------------------------------------------------------------------------------------------------------------------
  9. namespace OxyPlot.Wpf
  10. {
  11. using System.Windows.Input;
  12. /// <summary>
  13. /// Provides utility methods related to the keyboard.
  14. /// </summary>
  15. internal static class Keyboard
  16. {
  17. /// <summary>
  18. /// Gets the current modifier keys.
  19. /// </summary>
  20. /// <returns>A <see cref="OxyModifierKeys" /> value.</returns>
  21. public static OxyModifierKeys GetModifierKeys()
  22. {
  23. var modifiers = OxyModifierKeys.None;
  24. if (System.Windows.Input.Keyboard.IsKeyDown(Key.LeftShift) || System.Windows.Input.Keyboard.IsKeyDown(Key.RightShift))
  25. {
  26. modifiers |= OxyModifierKeys.Shift;
  27. }
  28. if (System.Windows.Input.Keyboard.IsKeyDown(Key.LeftCtrl) || System.Windows.Input.Keyboard.IsKeyDown(Key.RightCtrl))
  29. {
  30. modifiers |= OxyModifierKeys.Control;
  31. }
  32. if (System.Windows.Input.Keyboard.IsKeyDown(Key.LeftAlt) || System.Windows.Input.Keyboard.IsKeyDown(Key.RightAlt))
  33. {
  34. modifiers |= OxyModifierKeys.Alt;
  35. }
  36. if (System.Windows.Input.Keyboard.IsKeyDown(Key.LWin) || System.Windows.Input.Keyboard.IsKeyDown(Key.RWin))
  37. {
  38. modifiers |= OxyModifierKeys.Windows;
  39. }
  40. return modifiers;
  41. }
  42. }
  43. }