2009-05-19 6 views
0

Le contrôle WinForms ProgressBar permet de définir sa couleur de premier plan. Bien que cela fonctionne normalement bien, le réglage de couleur de premier plan semble être ignoré sur XP lorsque vous utilisez le style Luna odieux: il est toujours vert. XP De même, XP Luna semble ignorer le 'Style': Bien que je l'ai réglée sur 'Continu', la barre de progression est toujours dessinée avec des blocs.WinForms: la couleur de premier plan de la barre de progression est toujours verte sur XP Luna

Est-ce supposé être un comportement correct? Y a-t-il un moyen de contourner ce problème?

Répondre

2

Pour désactiver le style visuel Luna, vous pouvez supprimer l'appel à Application.EnableVisualStyles() dans la classe Program générée automatiquement.

Cela fera tous les contrôles sur les formulaires créés après ce point pour ressembler à Windows 2000.

Vous pouvez appeler sous condition qu'il en fonction du système d'exploitation, étant donné que les styles visuels de Vista respectent la propriété Style, IIRC (ne peut pas tester en ce moment - mon ordinateur portable est mort).


Vous pouvez gérer le rendu du contrôle manuellement par l'événement de peinture ou en dérivant du contrôle et dominante OnPaint *().

Vous pouvez également rouler votre propre à partir de zéro, puisque les barres de progression sont plutôt simples.

+0

Hm. Malheureusement, le formulaire est hébergé par un AddIn VisualStudio - donc je ne peux pas désactiver complètement le style visuel de Luna. –

+0

Eh bien, cela change certainement les choses;) – bsneeze

+0

Eh bien, j'espérais qu'il y avait une solution plus facile que cela ... mais il semble que c'est vraiment un changement d'API rupture (que je considère comme un bug). Merci quand même. –

Questions connexes