2010-06-16 67 views
4

我對C#非常陌生,而且遇到了問題並且無法解決問題。我有一排按鈕,分配給他們的.png圖像。圖像採用.png格式以允許透明度,並且平滑GIMP中的邊緣會留下一些半透明像素。我已將圖像列表工具欄(imglToolbar)的屬性設置爲將「透明」識別爲指定的顏色,以顯示爲透明。我正在Visual Studio 2005.構建輪流部分透明的圖像像素黑色

奇怪的是,當我查看Visual C#窗體預覽窗口時,一切看起來都很棒。圖標看起來應該完全一樣。但是,一旦我實際構建了該項目,按鈕會將圖像邊緣附近的每個半透明像素視爲黑色。它似乎無法處理既透明又具有顏色的圖像。

通過Visual C#中窗體編輯它的形象:什麼它看起來建成時像

alt text http://img5.imageshack.us/img5/2577/whatiwanted.jpg

圖片:

alt text http://img690.imageshack.us/img690/7241/whatigot.jpg

任何想法,爲什麼發生這種情況?

回答

2

我剛剛找到答案,至少對我的具體情況。

我正在處理的表單是一個頂級的MDI容器。無論出於何種原因,將圖標設置爲32位顏色不允許這些半透明像素被正確解釋。將它設置爲24位,一時興起,徹底解決了這個問題。不知道這是否是由於某種看不見的因素而出現的某種情況,但顏色深度變化解決了我的問題。

對於那些可能來到這裏有類似問題的人,請確保該窗口不是MDI容器的子項。在查找信息時,我發現MDI兒童根本不支持TransparencyKeys。

1

我遇到了這個問題,將表單的IsMdiContainer屬性更改爲false可以解決此問題。

+0

謝謝,但它看起來像需要留一個MDI容器。遊民。 – Sean 2010-06-16 21:55:15