如何从文件中显示PNG?

时间:2011-04-12 02:23:54

标签: c# visual-studio visual-studio-2010

我想切换toolStripButton上显示的图像。但是,我无法找到如何做到这一点。

我认为应该是这样的:

btSearch.Image = new Image("myimage.png");

但它不起作用(新图像似乎不存在)。

感谢您的帮助

2 个答案:

答案 0 :(得分:6)

使用Image.FromFile()

btSearch.Image = Image.FromFile("myimage.png");

不幸的是,在您处理图像之前,文件将被锁定。对于其他解决方案,请参阅问题 ToolStripButton: what's wrong with assigning an image programmatically

答案 1 :(得分:2)

我推荐使用Image.FromStream()方法,因为它不会锁定实际文件。

例如:

using (var stream = File.OpenRead(path))
using (var image = Image.FromStream(stream))
{
    //Black magic here.
}

请注意,您必须在图像的生命周期内保持流打开。如果使用相同的流连续调用此方法,则流将重置为零。

这是previous discussion,其中有Jon Skeet的答案。