ThemeManager.cs 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System.Windows;
  2. using System.Windows.Media;
  3. namespace LocalhostMES.Core
  4. {
  5. public enum ThemeMode
  6. {
  7. Light,
  8. Dark
  9. }
  10. public static class ThemeManager
  11. {
  12. public static ThemeMode CurrentTheme { get; private set; } = ThemeMode.Light;
  13. public static void ApplyTheme(ThemeMode mode)
  14. {
  15. var app = Application.Current;
  16. if (app == null)
  17. {
  18. return;
  19. }
  20. CurrentTheme = mode;
  21. if (mode == ThemeMode.Dark)
  22. {
  23. SetBrush(app, "Win11WindowBrush", "#0F1115");
  24. SetBrush(app, "Win11CardBrush", "#1A1D24");
  25. SetBrush(app, "Win11BorderBrush", "#2C3340");
  26. SetBrush(app, "Win11PrimaryBrush", "#3B82F6");
  27. SetBrush(app, "Win11PrimaryHoverBrush", "#2563EB");
  28. SetBrush(app, "Win11TextBrush", "#E5E7EB");
  29. SetBrush(app, "Win11SubTextBrush", "#9CA3AF");
  30. SetBrush(app, "Win11DangerBrush", "#EF4444");
  31. SetBrush(app, "Win11SuccessBrush", "#22C55E");
  32. }
  33. else
  34. {
  35. SetBrush(app, "Win11WindowBrush", "#F5F6F8");
  36. SetBrush(app, "Win11CardBrush", "#FFFFFF");
  37. SetBrush(app, "Win11BorderBrush", "#DEE2E8");
  38. SetBrush(app, "Win11PrimaryBrush", "#2563EB");
  39. SetBrush(app, "Win11PrimaryHoverBrush", "#1D4ED8");
  40. SetBrush(app, "Win11TextBrush", "#111827");
  41. SetBrush(app, "Win11SubTextBrush", "#6B7280");
  42. SetBrush(app, "Win11DangerBrush", "#DC2626");
  43. SetBrush(app, "Win11SuccessBrush", "#16A34A");
  44. }
  45. }
  46. private static void SetBrush(Application app, string key, string colorHex)
  47. {
  48. app.Resources[key] = new SolidColorBrush((Color)ColorConverter.ConvertFromString(colorHex));
  49. }
  50. }
  51. }