private void AfterToggleModeHandler(DarkModeApplyArea area, WindowsColorMode mode) { if (area == DarkModeApplyArea.ForWindowsControls) { notifyIcon.Icon = DMH.GetSystemTrayIcon( ApplicationIconLight, ApplicationIconDark); } ShowBalloonTipText($"Switched successfully to {mode} Mode."); }
public static void ToggleColorMode(DarkModeApplyArea area) { var currentMode = GetCurrentWindowsColorMode(area); if (currentMode == WindowsColorMode.Dark) { SwitchColorModeTo(area, WindowsColorMode.Light); } else { SwitchColorModeTo(area, WindowsColorMode.Dark); } }
public static void SwitchColorModeTo(DarkModeApplyArea area, WindowsColorMode target) { if (GetCurrentWindowsColorMode(area) == target) { return; } var value = target == WindowsColorMode.Light ? 1 : 0; var key = area == DarkModeApplyArea.ForWindowsControls ? SystemUsesLightThemeValueName : AppsUseLightThemeValueName; Registry.SetValue(BasePath, key, value); AfterToggleModeHandlers?.Invoke(area, target); }
public static WindowsColorMode GetCurrentWindowsColorMode( DarkModeApplyArea area) { var value = area == DarkModeApplyArea.ForWindowsControls ? Registry.GetValue(BasePath, SystemUsesLightThemeValueName, null) : Registry.GetValue(BasePath, AppsUseLightThemeValueName, null); if (value == null) { throw new Exception(); } return(value as int? == 1 ? WindowsColorMode.Light : WindowsColorMode.Dark); }