2009-11-25 86 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;