Этого не произойдет. Для темы Windows Classic нет «визуальных стилей». Это то, что они имеют в виду под «Классикой»: это тема, которая использовалась в течение многих лет до изобретения визуальных стилей.
Тема Windows XP Luna - первая, которая поддерживает визуальные стили. Тема Aero , включенная в Windows Vista и 7, также поддерживает визуальные стили, хотя они выглядят немного иначе.
Если вы используете класс VisualStyleRenderer
, как вы делаете, все будет рисовать в соответствии с темой, выбранной пользователем. Как вы сказали, все выглядит хорошо, когда вы выбираете тему Windows XP. Когда у вас выбрана классическая тема, все будет нарисовано с использованием классической темы. Это ожидаемое поведение; все остальное в системе тоже выглядит иначе.
Вам нужно будет проверить и проверить, поддерживаются ли визуальные стили, и если нет, использовать другой метод рисования. Здесь доступен образец на MSDN . Самое простое, что можно сделать - добавить оператор if
, который оценивает значение, возвращаемое свойством Application.RenderWithVisualStyles
. Если это правда, вы можете рисовать, используя класс VisualStyleRenderer
. Если ложно, вам нужно пнуть его старой школы. Использование ControlPaint
класса может быть хорошим способом сделать это.