DamageLevelToColorConverter.cs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using SWRIS.Enums;
  2. using System;
  3. using System.Globalization;
  4. using System.Windows.Data;
  5. using System.Windows.Media;
  6. namespace SWRIS.Converters
  7. {
  8. public class DamageLevelToColorConverter : IValueConverter
  9. {
  10. private static readonly SolidColorBrush MildBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#00FF78"));
  11. private static readonly SolidColorBrush LightBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FFF000"));
  12. private static readonly SolidColorBrush ModerateBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF9400"));
  13. private static readonly SolidColorBrush SevereBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF6C00"));
  14. private static readonly SolidColorBrush CriticalBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF0000"));
  15. private static readonly SolidColorBrush ExtremeBrush = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#FF008A"));
  16. public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  17. {
  18. if (value is DamageLevel level)
  19. {
  20. switch (level)
  21. {
  22. case DamageLevel.Mild:
  23. return MildBrush;
  24. case DamageLevel.Light:
  25. return LightBrush;
  26. case DamageLevel.Moderate:
  27. return ModerateBrush;
  28. case DamageLevel.Severe:
  29. return SevereBrush;
  30. case DamageLevel.Critical:
  31. return CriticalBrush;
  32. case DamageLevel.ExceededLimit:
  33. return ExtremeBrush;
  34. }
  35. }
  36. return Brushes.Transparent;
  37. }
  38. public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  39. {
  40. throw new NotImplementedException();
  41. }
  42. }
  43. }