LogLevelToColorConvertExtension.cs 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Drawing;
  4. using System.Globalization;
  5. using System.Text;
  6. using System.Windows.Data;
  7. using System.Windows.Markup;
  8. using System.Windows.Media;
  9. using Vinno.IUS.Common.Log;
  10. namespace vCloud.GeneratePackages.Tool.Extensions
  11. {
  12. public class LogLevelToColorConvertExtension : MarkupExtension, IValueConverter
  13. {
  14. [ThreadStatic]
  15. private static LogLevelToColorConvertExtension _converter;
  16. public override object ProvideValue(IServiceProvider serviceProvider)
  17. {
  18. return _converter ?? (_converter = new LogLevelToColorConvertExtension());
  19. }
  20. public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  21. {
  22. if (value != null)
  23. {
  24. if (Enum.TryParse(typeof(LogLevel), value.ToString(), out var level))
  25. {
  26. switch (level)
  27. {
  28. case LogLevel.Info:
  29. return Brushes.Blue;
  30. case LogLevel.Warn:
  31. return Brushes.Goldenrod;
  32. case LogLevel.Error:
  33. return Brushes.Red;
  34. }
  35. }
  36. }
  37. return Brushes.Black;
  38. }
  39. public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  40. {
  41. throw new NotImplementedException();
  42. }
  43. }
  44. }