2009-10-07 94 views
3

我正在嘗試用圖像填充DataGridView單元格。圖像是一個Alpha透明度32位PNG。C#DataGridView - 透明圖像

我可以讓這個圖像在一個圖片框或一個ListView中正確顯示,但在DataGridView中圖像會丟失質量。

我曾嘗試將控件的各個部分設置爲透明,但似乎沒有任何工作。我將圖像導入資源文件,然後直接調用它。

我有一種感覺,我需要重寫onpaint事件來解決透明度/顏色深度問題,但我不完全確定。

我將不勝感激任何幫助!

頂部圖像是從一個圖片框和底部兩個在DataGridView中。

*由於我無法使用圖片代碼,請參閱以下鏈接的問題

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

+0

可以喲發佈代碼片段? – David 2009-10-07 02:50:08

+0

將DataGridView控件添加到表單中。將下面的代碼添加到formload中:Bitmap testImage = new Bitmap(@「C:\ pathtoyourimage.png」); dataGridView1.AutoSizeRowsMo​​de = DataGridViewAutoSizeRowsMo​​de.AllCells; DataGridViewImageColumn imageColumn = new DataGridViewImageColumn(); dataGridView1.Columns.Add(imageColumn); dataGridView1.Rows.Add(testImage); – NSH 2009-10-08 02:37:43

回答

1

我用較低分辨率的gif進行了測試,看起來可以接受。我使用的PNG是32位(8位alpha通道),我認爲這只是DataGridView圖像列可以處理的深度。

感謝大家提供他們的意見。這是非常讚賞!

0

的例子我不知道這一點,但現在看來,這可能是調整大小問題而不是透明度問題(或調整大小/透明度交互的問題)。嘗試使用與它在DataGridView中呈現的大小完全相同的PNG文件。

+0

我希望這是它,但我可以使細胞高度的確切大小或比圖像更大,它仍然顯示如示例中所示。 – NSH 2009-10-07 21:30:47

+0

您可以發佈代碼示例,或者更好的鏈接到顯示此問題的簡單項目嗎?我對此很好奇,因爲這是一個奇怪的問題,但我不想搞清楚將圖像加載到DataGridView的基礎知識。它看起來有點像DataGridView試圖(並且失敗)在圖像周圍繪製某種邊界效果。 – MusiGenesis 2009-10-07 21:40:00

+0

將DataGridView控件添加到窗體。 將下面的代碼添加到formload中: Bitmap testImage = new Bitmap(@「C:\ pathtoyourimage。PNG「); dataGridView1.AutoSizeRowsMo​​de = DataGridViewAutoSizeRowsMo​​de.AllCells; DataGridViewImageColumn imageColumn =新DataGridViewImageColumn(); dataGridView1.Columns.Add(imageColumn); dataGridView1.Rows.Add(testImage); – NSH 2009-10-08 01:54:16

1

我遇到了同樣的問題。我的32位PNG圖像在DataGridView中看起來很可怕。我所做的是將我的PNG文件轉換爲.ico格式(我使用http://www.convertico.com/),然後將其添加到網格。

我所做的是設置displayCell.ValueIsIcon = True使DataGridViewImageCell將我的圖像視爲圖標。

而這對我來說。圖標看起來不錯...

0

我有這個問題使用ImageList,一旦我切換到位圖數組,它工作正常。