2009-11-25 93 views
1

我正在使用標準的BMP圖像按鈕與視覺工作室來。在資源(resx)文件中使用這些圖像時,如何設置透明度鍵?如何在Windows窗體中設置按鈕的透明度鍵?

這對我來說一直很好用,使用ImageList,但我想在同一個程序集中的許多對話框中重複使用圖像,我也希望通過資源束控制圖像,從而實現圖像本地化。

一些我談論的圖像中可以找到:

%VS_PATH%\Common7\VS2008ImageLibrary\1033\VS2008ImageLibrary\VS2008ImageLibrary\Annotations&Buttons\bmp_format

回答

2

您可以通過設計師來完成。將ImageList添加到窗體並設置其TransparentColor屬性。添加圖像。設置按鈕的ImageList和ImageIndex屬性。

+0

感謝nobugs,正如前面提到的那樣,我總是這樣做,但是如果我有多個表單/用戶控件,我希望與他們共享相同的資源,我不能。我想爲不同的語言環境提供不同的圖像,這就是爲什麼我想使用資源包的原因。我總是可以從ImageList繼承並構建可通過設計器訪問的列表,但是,當表單打開時,圖像列表將加載所有資源,如果該表單只關注一個圖像資源,則會加載超過其所需的資源。 – 2009-11-26 02:42:56

+0

ImageList.Images也是一個本地化屬性。您不必使用所有資源加載它。 – 2009-11-26 12:24:42

+0

謝謝,我沒有'意識到'ImageList.Images'本地化,這是偉大的,我會這樣做,但它意味着整個ImageList需要加載時訪問,即使所有圖像不是正在使用。現在人們可以假設可以創建許多圖像列表來最小化冗餘負載。 – 2009-11-29 10:31:33

0

雖然我希望通過設計師,我想這是我能弄清楚如何實現只有這樣,才能做到這一點我在追求什麼。

Bitmap bmp = new Bitmap(MyAppResources.MyImageResource); 
bmp.MakeTransparent(Color.Fuchsia); 
Button btn = new Button(); 
btn.Image = bmp;