2010-11-12 66 views
0

我無法讓我的窗體背景圖像以漸變透明度正確顯示。也就是說,圖像的邊緣(或任何其他地方)具有淡入淡出或非255的Alpha值。結果是,無論在什麼地方,Alpha都不是255(或者0--我不記得了),我看到了我的背景顏色。這裏是一個screen shot無法獲取漸變透明邊框以正確顯示

我有這個設置是我試圖通過Form.TransparencyKey屬性鍵出綠色背景24bit的bmp文件:

protected override void OnLoad(EventArgs e) 
{ 
    base.OnLoad(e); 

    Color key = ((Bitmap)this.BackgroundImage).GetPixel(0, 0); 
    this.TransparencyKey = key; 
} 

我也試過將Form的BackColor屬性設置爲相同的鍵值,但這沒有什麼區別。

我也嘗試保存我的圖像作爲png與透明度和鍵入整個表單背景,但也沒有工作。

我知道這是可能的,我已經看到Photoshop等應用程序使用它十年。如果有問題,我正在使用WinXP Pro。

任何人都有這方面的經驗,並有一個想法,我失蹤或做不正確的步驟?

回答

1

的WinForms的實施Form只允許純色用作透明度的關鍵。不可能有不同程度的透明度。

大多數啓動屏幕類似於你的桌面屏幕截圖(在其啓動屏幕將會佔用佔用的範圍內),然後將其啓動屏幕合併到此屏幕截圖的頂部。然後他們將結果位圖顯示給用戶,給人一種alpha梯度的印象。

+0

這是一個巧妙的解決方案。如果我無法用陰影拉出可接受的外觀,我想我會去屏幕截圖路線。無論如何,我還是需要使用屏幕截圖功能,所以我不妨進入並瞭解它。謝謝(你的)信息。 – 2010-11-12 05:24:24

1

我已經得到了我的失敗時間份額。
我發現WinForms在處理這個時很簡單。
下面是一些解決方案,您可能會發現有用:
http://www.c-sharpcorner.com/UploadFile/scottlysle/XparentFormsCS10282007212944PM/XparentFormsCS.aspx http://blogs.msdn.com/b/mswanson/archive/2005/07/07/436618.aspx
http://www.vcskicks.com/splash-screen.php

+0

其中的一篇文章給了我一個想法,我可以使用陰影來僞造我之後的效果。謝謝。 – 2010-11-12 05:22:49