refactor(主题): 将主题相关逻辑提取到ThemeHelper类中

重构主题相关代码,将重复的IsSystemThemeLight方法和主题应用逻辑提取到新的ThemeHelper工具类中
简化多个窗口的主题处理代码,统一使用ThemeHelper进行主题管理
This commit is contained in:
PrefacedCorg
2026-05-01 21:54:15 +08:00
parent 1217ef7ef9
commit 267d9b4450
12 changed files with 188 additions and 523 deletions
+2 -17
View File
@@ -1,4 +1,5 @@
using iNKORE.UI.WPF.Modern;
using Ink_Canvas.Helpers;
using Microsoft.Win32;
using System;
using System.Collections.Generic;
@@ -246,27 +247,11 @@ namespace Ink_Canvas
SetTheme(ThemeDark);
break;
case 2:
SetTheme(IsSystemThemeLight() ? ThemeLight : ThemeDark);
SetTheme(ThemeHelper.IsSystemThemeLightLegacy() ? ThemeLight : ThemeDark);
break;
}
}
private bool IsSystemThemeLight()
{
try
{
var registryKey = Registry.CurrentUser;
var themeKey = registryKey.OpenSubKey("software\\Microsoft\\Windows\\CurrentVersion\\Themes\\Personalize");
if (themeKey != null)
{
int keyValue = (int)themeKey.GetValue("SystemUsesLightTheme");
return keyValue == 1;
}
}
catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex); }
return false;
}
private void AutoSwitchFloatingBarIconForTheme(string theme)
{
try