VS2022 中的 VSIX - 获取当前主题

问题描述 投票:0回答:1

我正在开发 Visual Studio 的扩展,我需要检测用户在 VS 用户设置中的主题。

我怎样才能实现这个目标?

我正在使用以下代码来尝试获取主题:

            var shellSettingsManager = new ShellSettingsManager(ServiceProvider.GlobalProvider);
            var store = shellSettingsManager.GetReadOnlySettingsStore(SettingsScope.UserSettings);
            var theme = store.GetString("General", "CurrentTheme", string.Empty);

但是调试时,主题始终为空:

visual-studio vsix
1个回答
0
投票

我相信你可以从 Theme > BackupThemeId 中获取它 我的返回

{1ded0138-47ce-435e-84ef-9ec1f439b749}
,这是
Dark
主题的 GUID。
https://learn.microsoft.com/en-us/visualstudio/extensibility/internals/vsix-color-compiler?view=vs-2022

var shellSettingsManager = new Microsoft.VisualStudio.Shell.Settings.ShellSettingsManager(Microsoft.VisualStudio.Shell.ServiceProvider.GlobalProvider);
var store = shellSettingsManager.GetReadOnlySettingsStore(Microsoft.VisualStudio.Settings.SettingsScope.UserSettings);
var theme = store.GetString("Theme", "BackupThemeId", string.Empty);
© www.soinside.com 2019 - 2024. All rights reserved.