2011-01-18 3 views
2

Comment colorer une cellule dans un datagridview avec le canal alpha? RGB fonctionne bien, mais en spécifiant l'alpha, je reçois des chiffres déformés à la place. Je fais ce changement de couleur dans l'événement cellPainting.Couleur alpha-canal dans DataGridView

alt text

e.CellStyle.BackColor = Color.FromArgb(120, 255, 0, 0) 
+0

Qu'attendez-vous? Il n'y a pas d'arrière-plan derrière la cellule, donc je ne vois pas de raison pour un canal alpha. –

+1

Si je savais ce que vous savez, je ne poserais pas la question. Donc, à la place s'il vous plaît expliquer. Pourquoi ce n'est pas un arrière-plan? Et comment puis-je le résoudre? – bretddog

+1

Alpha = "laisse passer les pixels de l'arrière-plan". Comme tout est blanc en arrière-plan, il semble que vous voulez simplement rendre la couleur plus claire. Cela peut être fait uniquement avec RGB. –

Répondre

1

Eh bien, il travaille. Votre capture d'écran montre la cellule de la 3e rangée obtenant des valeurs différentes et repeinte sans que le BackColor n'efface ce qui était auparavant. Il y a plusieurs chiffres dessinés les uns sur les autres, cela ressemble à un 4, 5 et 6. Vous obtenez des effets plus intéressants en réduisant la taille de la DGV et une barre de défilement horizontale apparaît. Le faire glisser produit un «frottis» de chiffres.

Cela ne fonctionne tout simplement pas très bien, je ne sais pas pourquoi vous voulez faire cela. Vous voulez un bon fond opaque pour dessiner de nouvelles valeurs. Cela nécessite un alpha de 255.

+1

Je veux avoir une couleur avec alpha (sur blanc) ajusté basé sur la valeur de la cellule. Mais si je ne peux pas utiliser le canal alpha, je suppose que je dois regarder dans le calcul RVB. – bretddog

+0

Oui, utilisez l'espace couleur HSL pour obtenir de bonnes couleurs: http://www.bobpowell.net/rgbhsb.htm –