C# DataGridView - Transparent Image
I am attempting to populate a DataGridView cell with an image. The image is a 32bit png with Alpha Transparency.
I can get this image to display properly in a picturebox or a Listview but in the DataGridView the image loses quality.
I have tried setting various parts of the 开发者_高级运维control to transparent but nothing seems to work. I import the image into resource file and then call it directly.
I have a feeling I need to override the onpaint event to resolve the transparency/color depth issue but I'm not entirely sure.
I would appreciate any help!
The top image is that from a picturebox and the bottom two are in the DataGridView.
*Since I am unable to use an image tag, please see the following link for an example of the problem
http://bytes.com/attachments/attachment/2016d1245038555/imageissue.png
I came across the same problem. My 32 bits png image looked horrible in a DataGridView. What I did is convert my png file to the .ico format (I used http://www.convertico.com/), and then added it to the grid.
What I did is set displayCell.ValueIsIcon = True to make the DataGridViewImageCell treat my image as an Icon.
And that did it for me. The icons look good now...
I have tested with a lower resolution gif and it looks acceptable. The PNG I was using is 32-Bit (with 8 bits alpha channel) and I think this is simply out of the depth that the DataGridView Image Column can handle.
Thanks to everyone who offered their input. It is very much appreciated!
I'm not sure about this, but it appears that this might be a resizing issue rather than a transparency issue (or a problem with the resizing/transparency interaction). Try using a PNG file that has exactly the same pixel-by-pixel dimensions as the size to which it's rendered in the DataGridView.
I was having this problem using an ImageList, once I switched to a Bitmap Array, it worked fine.
精彩评论