C # DataGridView - прозрачное изображение - PullRequest
3 голосов
/ 07 октября 2009

Я пытаюсь заполнить ячейку DataGridView изображением. Изображение представляет собой 32-битный PNG с альфа-прозрачностью.

Я могу заставить это изображение правильно отображаться в окне рисунка или в ListView, но в DataGridView изображение теряет качество.

Я попытался установить прозрачность различных частей элемента управления, но, похоже, ничего не работает. Я импортирую изображение в файл ресурсов и затем вызываю его напрямую.

У меня такое чувство, что мне нужно переопределить событие onpaint для решения проблемы прозрачности / глубины цвета, но я не совсем уверен.

Буду признателен за любую помощь!

Верхнее изображение - это изображение из окна рисунка, а два нижних - в DataGridView.

* Поскольку я не могу использовать тег изображения, см. Следующую ссылку для примера проблемы

http://bytes.com/attachments/attachment/2016d1245038555/imageissue.png

Ответы [ 4 ]

1 голос
/ 10 октября 2009

Я протестировал с более низким разрешением GIF, и это выглядит приемлемым. PNG, который я использовал, является 32-битным (с альфа-каналом 8 бит), и я думаю, что это просто не в той глубине, которую может обработать столбец изображений DataGridView.

Спасибо всем, кто предложил свой вклад. Это очень ценится!

1 голос
/ 23 февраля 2010

Я столкнулся с той же проблемой. Мое 32-битное изображение PNG выглядело ужасно в DataGridView. Я конвертировал свой png-файл в формат .ico (я использовал http://www.convertico.com/),, а затем добавил его в таблицу.

Я установил displayCell.ValueIsIcon = True, чтобы DataGridViewImageCell обрабатывал мое изображение как значок.

И это сделало это для меня. Значки теперь выглядят хорошо ...

0 голосов
/ 04 сентября 2014

У меня возникла эта проблема при использовании ImageList, когда я переключился на Bitmap Array, он работал нормально.

0 голосов
/ 07 октября 2009

Я не уверен в этом, но похоже, что это может быть проблема изменения размера, а не проблема прозрачности (или проблема с взаимодействием изменения размера / прозрачности). Попробуйте использовать файл PNG с точно такими же попиксельными размерами, как и размер, который он отображает в DataGridView.

...