Я пытаюсь получить текущее имя темы Windows в C#, но оказалось, что оно немного сложнее, чем ожидалось. У меня есть пример кода из MSDN:Как получить текущее имя темы Windows?
public void Test()
{
StringBuilder themeFileName = new StringBuilder(0x200);
GetCurrentThemeName(themeFileName, themeFileName.Capacity, null, 0, null, 0);
string fileName = Path.GetFileName(VisualStyleInformation.ThemeFilename);
if (string.Equals("aero.msstyles", fileName, StringComparison.OrdinalIgnoreCase))
{
// user is using aero theme
}
}
[DllImport("uxtheme.dll", CharSet = CharSet.Auto)]
public static extern int GetCurrentThemeName(StringBuilder pszThemeFileName, int
dwMaxNameChars, StringBuilder pszColorBuff, int dwMaxColorChars,
StringBuilder pszSizeBuff, int cchMaxSizeChars);
GetCurrentTheme() не изменяет StringBuilder. Я также попытался взглянуть на класс
System.Windows.Forms.VisualStyles.VisualStyleInformation, но он полон пустых значений. Кто-нибудь знает, как это сделать? Мне, должно быть, не хватает чего-то легкого, но я еще ничего не нашел, что работает.
Спасибо, я не видел этого. Чтение ... –