Я пишу расширение Visual Studio в С#, которое, я надеюсь, изменит цветную тему в зависимости от времени суток (после заката темная тема будет применена - при восходе солнца будет применена синяя/легкая тема в зависимости от предпочтения пользователей).
Я могу изменить цветную тему, используя WriteableSettingsStore
, выставленный объектом ShellSettingsManager
. Когда я выполняю следующий код, тема изменяется после перезапуска Visual Studio.
var settingsManager = new ShellSettingsManager(this);
var writeableUserStore = settingsManager.GetWritableSettingsStore(SettingsScope.UserSettings);
writeableUserStore.SetString("General", "CurrentTheme", GuidList.guidDarkTheme);
Я бы предпочел, чтобы обновление темы автоматически - я попытался использовать функции UpdateWindow
и RedrawWindow
API User32, но окно не перезагружается.
Итак, вопрос в том, как "перерисовать" Visual Studio после изменения свойства CurrentTheme в реестре?