Интересный вопрос. Единственное, что приходит на ум - это проверка размера кнопки по умолчанию. Он стилизован по-разному в обеих темах, и я предполагаю, что он имеет разные размеры. Это может быть надежно, если вы дадите кнопке фиксированный размер текста.
Я запускаю виртуальную машину XP и проверяю, действительно ли размеры отличаются.
Обновление: Они отличаются.
Кнопка Google "Мне повезет"
- в классическом скине: 99 x 23,75 (sic!) Пикселей
- в скине XP: 97 x 21,75 пикселей
Второй, менее надежный подход, который приходит на ум, - это дать элементу системный цвет CSS , а затем проанализировать полученный вычисленный цвет. В классическом режиме свойство ButtonFace
будет иметь определенный оттенок серого, и я думаю, что отличается от стандартного. Опять же, должен быть проверен.
Обновление: они тоже различаются.
ButtonFace
Цвет системы CSS
- в классической оболочке Windows: # D4D0C8
- в скине XP: # ECE9D8
Очевидно, что оба подхода сломаются, если пользователь выполнит какую-либо настройку цвета и / или размера шрифта. Подход с использованием размера шрифта является более надежным IMO, так как с этим меньше людей играют.
Вы, конечно, должны иметь таблицы сравнения для всех поколений Windows, так как, предположительно, значения для классического и стандартного скина будут отличаться.