2008-12-24 243 views
2

我在窗體上有一個圖片框,我添加了一張圖片。這張圖片有一個透明的背景,但不幸的是,它似乎在圖片框中丟失了...我猜這是因爲圖片框的背景顏色屬性設置爲灰色(默認)。雖然我看不到任何「透明」選項。Visual Basic .net中圖像的透明度?

任何想法我可以做到這一點?

回答

6

取決於你所要完成的有幾種不同的方式去了解它是什麼。

一些例子是 -

製作的位圖透明

 
Dim bmp As Bitmap = Bitmap.FromFile("test.bmp") 
bmp.MakeTransparent(Color.Magenta) ' magenta in bitmap will be transparent 
PictureBox1.Image = bmp 

使畫面框透明

 
PictureBox1.BackColor = Color.Transparent 

如果你真的需要一個透明的形象,我不會使用PictureBox的建議並直接渲染一個透明的位圖。

+1

如果圖片框的面板有一個背景圖像,這將無法正常工作。 – serhio 2010-03-15 16:12:45

1

如果你想控制背後 PictureBox的展現,即你希望你的圖像以透明的背景顯示,試着直接在表單上繪製。

早在VB6的日子裏,我們可以通過掛接到窗體的「重繪」事件或東西...

+1

這將工作,但只有當你的照片不移動。否則你將不得不做與自定義無效和自定義重繪...這是一個大...... – serhio 2010-03-15 16:13:41

1

在VB中的大多數控件,在對象的背景色屬性做到這一點,有一個透明選項。這部作品在VB2008罰款,但在VB2005,則必須設置它的.parent屬性背後的對象(當然,以我的經驗,反正。)

希望這有助於

+0

設置父母作爲背景控制在VS2005做了我的伎倆。 – 2010-04-28 06:00:29

1

我知道這是一個老話題,但我想我會發布我想出的解決方案,以供任何尋找Windows Forms簡單解決方案的人使用。假設你有PictureBox1和PictureBox2。您希望PictureBox2覆蓋在PictureBox1上。確保你的PictureBox1背景設置爲透明。然後,您可以通過編程設置:

PictureBox2.Parent = PictureBox1 

魔術