WinForms: цвет переднего плана всегда зеленый на XP Luna - PullRequest
0 голосов
/ 19 мая 2009

Элемент управления WinForms ProgressBar позволяет установить его основной цвет. Хотя это обычно работает нормально, настройка цвета переднего плана, как представляется, игнорируется в XP при использовании отвратительного стиля Luna: он всегда зеленый.

Похоже, что XP Luna, похоже, игнорирует «Стиль»: хотя я установил «Непрерывный», индикатор выполнения всегда рисуется с блоками.

Это должно быть правильное поведение? Есть ли способ обойти это?

1 Ответ

2 голосов
/ 19 мая 2009

Чтобы отключить визуальный стиль Luna, вы можете удалить вызов Application.EnableVisualStyles () в автоматически сгенерированном классе Program.

Это сделает все элементы управления в формах, созданных после этой точки, похожими на Windows 2000.

Вы можете условно назвать его в зависимости от операционной системы, поскольку визуальные стили Vista учитывают свойство Style, IIRC (не могу сейчас проверить - мой ноутбук умер).


Вы можете обрабатывать рендеринг элемента управления вручную с помощью события Paint или производного от элемента управления и переопределяя OnPaint * ().

Вы также можете бросить свой собственный с нуля, так как индикаторы выполнения довольно просты.

...