颜色主题 — System / Light / Dark,AssetStudioMod .NET 9 版本独有 Dark Mode
三种主题
AssetStudioMod 的 .NET 9 版本支持三种颜色主题:
| 主题 | 行为 | 检测机制 |
|---|---|---|
| System | 默认,自动跟随 Windows 系统主题 | 读注册表 HKCU\Software\Microsoft\Windows\CurrentVersion\Themes\Personalize\AppsUseLightTheme |
| Light | 强制浅色界面 | 不读注册表 |
| Dark | 强制深色界面 | 不读注册表 |
原版 AssetStudio 和 AssetStudioMod 的 .NET 4.7.2 / .NET 8 版本没有 Dark Mode——始终浅色。
怎么切换
Options → Color theme 子菜单里选。切换即时生效,不需要重启。
设置持久化到 .config 文件,下次打开 AssetStudio 自动恢复上次的主题选择。
System 主题的工作原理
System 模式下 AssetStudioMod 启动时读 Windows 注册表的 AppsUseLightTheme DWORD 值:
0→ Dark(系统用深色);1→ Light(系统用浅色)。
AssetStudioMod 用 Microsoft.Win32.Registry 类读取,然后把所有控件的 BackColor / ForeColor / BorderColor 等换成对应的深色或浅色。
AssetStudioMod 的 ColorTheme 类
主题切换的核心代码在 AssetStudioGUI/ColorTheme.cs 里——一个静态类提供 ApplyColorTheme(ThemeType) 方法,遍历 GUI 上所有控件,根据控件类型(Button / Label / TextBox / ListView / TreeView / TabControl 等)设置对应的深色或浅色配色。
颜色值都硬编码在代码里,没有皮肤文件机制。如果想自定义配色需要改源码重新编译。
主题覆盖范围
ColorTheme 覆盖 AssetStudioGUIForm 上的所有主要控件:
- 菜单栏 / 工具栏 / 状态栏;
- 左侧 TabControl(Scene Hierarchy / Asset List / Classes);
- 右侧 Preview / Dump 面板;
- Asset List 的 ListView(含表头和行交替色);
- AssetStudioMod 特有控件:Filter Mode 下拉、Export Options 对话框、FMODpanel。
OpenGL 渲染的 3D Mesh 预览面板不做主题适配(OpenTK 是原生控件,WinForms 管不了),始终浅色背景。