ModifierFlagToModifiersConverter.cs 928 B

1234567891011121314151617181920212223242526272829303132
  1. using System.Globalization;
  2. using System.Windows.Input;
  3. namespace PixiEditor.Helpers.Converters;
  4. public class ModifierFlagToModifiersConverter : SingleInstanceConverter<ModifierFlagToModifiersConverter>
  5. {
  6. public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  7. {
  8. return GetModifiers((ModifierKeys)value);
  9. }
  10. private IEnumerable<ModifierKeys> GetModifiers(ModifierKeys keys)
  11. {
  12. if (keys.HasFlag(ModifierKeys.Windows))
  13. {
  14. yield return ModifierKeys.Windows;
  15. }
  16. else if (keys.HasFlag(ModifierKeys.Control))
  17. {
  18. yield return ModifierKeys.Control;
  19. }
  20. else if (keys.HasFlag(ModifierKeys.Shift))
  21. {
  22. yield return ModifierKeys.Shift;
  23. }
  24. else if (keys.HasFlag(ModifierKeys.Alt))
  25. {
  26. yield return ModifierKeys.Alt;
  27. }
  28. }
  29. }