LogLevelToColorConvertExtension.cs 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  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. using Brushes = System.Windows.Media.Brushes;
  11. namespace Flyinsono.Client.Test.Extensions
  12. {
  13. public class LogLevelToColorConvertExtension : MarkupExtension, IValueConverter
  14. {
  15. [ThreadStatic]
  16. private static LogLevelToColorConvertExtension _converter;
  17. public override object ProvideValue(IServiceProvider serviceProvider)
  18. {
  19. return _converter ?? (_converter = new LogLevelToColorConvertExtension());
  20. }
  21. public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
  22. {
  23. if (value != null)
  24. {
  25. if (Enum.TryParse(value.ToString(), out LogLevel level))
  26. {
  27. switch (level)
  28. {
  29. case LogLevel.Info:
  30. return Brushes.Blue;
  31. case LogLevel.Warn:
  32. return Brushes.Goldenrod;
  33. case LogLevel.Error:
  34. return Brushes.Red;
  35. }
  36. }
  37. }
  38. return Brushes.Black;
  39. }
  40. public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
  41. {
  42. throw new NotImplementedException();
  43. }
  44. }
  45. }