2009-05-19 8 views
0

Mit dem WinForms ProgressBar-Steuerelement kann die Vordergrundfarbe festgelegt werden. Während dies normalerweise gut funktioniert, scheint die Einstellung der Vordergrundfarbe auf XP ignoriert zu werden, wenn der widerliche Luna-Stil verwendet wird: Er ist immer grün.WinForms: Vordergrundfarbe des Fortschrittsbalkens immer grün auf XP Luna

Similaraly, XP Luna scheint den 'Style' zu ignorieren: Obwohl ich ihn auf 'Continuous' gesetzt habe, wird der Fortschrittsbalken immer mit Blöcken gezeichnet.

Soll das korrekt sein? Gibt es eine Möglichkeit, dies zu umgehen?

Antwort

2

Um den visuellen Stil von Luna zu deaktivieren, können Sie den Aufruf von Application.EnableVisualStyles() in der automatisch generierten Program-Klasse entfernen.

Dadurch werden alle Steuerelemente auf Formularen nach diesem Punkt erstellt machen Windows aussehen wie 2000.

Sie können es bedingt aufrufen je nach Betriebssystem, da Vista Visual Styles die Style-Eigenschaft respektieren, IIRC (kann nicht testen gerade jetzt - mein Laptop starb).


Sie können die Wiedergabe der Steuerung manuell über das Paint-Ereignis handhaben oder durch von der Steuer- und überwiegendem OnPaint * Herleiten().

Sie können auch selbst von Grund auf rollen, da Fortschrittsbalken ziemlich einfach sind.

+0

Hm. Leider wird das Formular von einem VisualStudio-AddIn gehostet - daher kann ich den visuellen Stil von Luna nicht vollständig deaktivieren. –

+0

Nun, das ändert sicherlich die Dinge;) – bsneeze

+0

Nun, ich hoffte, es gab eine einfachere Lösung als das ... aber es scheint, dass dies wirklich eine brechende API-Änderung ist (was ich für einen Fehler halte). Trotzdem danke. –

Verwandte Themen