コード例 #1
0
        private void AfterToggleModeHandler(DarkModeApplyArea area,
                                            WindowsColorMode mode)
        {
            if (area == DarkModeApplyArea.ForWindowsControls)
            {
                notifyIcon.Icon = DMH.GetSystemTrayIcon(
                    ApplicationIconLight,
                    ApplicationIconDark);
            }

            ShowBalloonTipText($"Switched successfully to {mode} Mode.");
        }
コード例 #2
0
        public static void ToggleColorMode(DarkModeApplyArea area)
        {
            var currentMode = GetCurrentWindowsColorMode(area);

            if (currentMode == WindowsColorMode.Dark)
            {
                SwitchColorModeTo(area, WindowsColorMode.Light);
            }
            else
            {
                SwitchColorModeTo(area, WindowsColorMode.Dark);
            }
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }