如何将图标从资源文件转换为图像以便在按钮上使用?

时间:2012-06-22 19:23:01

标签: c# winforms resources icons

我正在尝试使用我作为资源添加的图标作为按钮上的图像。我知道这是可能的,因为我可以通过设计师在其他项目中完成它。但是,我正在尝试使用代码执行此操作。我按照this question接受的答案中的步骤,将图标作为资源添加到我的项目中。资源名为CancelButtonIcon

现在,我正在尝试使用以下代码将该图标添加为标准按钮上的图像:

this.CancelButton.Image = (System.Drawing.Image)Properties.Resources.CancelButtonIcon;

但是,我收到一条错误消息:

Cannot convert type 'System.Drawing.Icon' to 'System.Drawing.Image'

在我使用设计器时Visual Studio自动生成的代码中,它看起来像这样:

((System.Drawing.Image)(resources.GetObject("SaveButton.Image")));

是通过“属性”窗口手动添加资源的结果。如何将此图标资源转换为图像,以便可以在按钮上使用?通过设计器添加它不是一个选项(此按钮是以编程方式创建的,因此在设计器中不存在。)

2 个答案:

答案 0 :(得分:9)

您可以使用Icon.ToBitmap方法来实现此目的。请注意,BitmapImage

CancelButton.Image = Properties.Resources.CancelButtonIcon.ToBitmap();

答案 1 :(得分:1)

不知道为什么,但是当我尝试使用接受的答案的方法时,.ToBitmap()调用给了我数组索引超出范围的异常。我通过这样做来解决这个问题:

System.Drawing.Icon.FromHandle(Properties.Resources.CancelButtonIcon.Handle).ToBitmap();