Winforms:使用Activator.CreateInstance从Resource创建System.Drawing.Image

时间:2014-02-25 23:04:40

标签: c# winforms createinstance

如果可能,我如何使用

Activator.CreateInstance("MyExeName", "Resources.Image1") 

创建一个与按钮关联的背景图像? Image1是在名为"Image1"的资源中定义的图像。

var handle = Activator.CreateInstance("TestApp", "Resources.Image1");
var backgroundImage = handle.Unwrap() as System.Drawing.Image;

我在stackoverflow中没有看到这样的东西。我错过了什么?

感谢您的期待,感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

如果您可以获得所需资源的名称,请使用以下命令:

using System.Resources;

public static Image GetImage(String ImageName)
{
    Image retImage = null;
    Object o = Properties.Resources.ResourceManager.GetObject(ImageName);
    if (o != null && (o is Image))
    {
        Image img = (Image)((Image)o).Clone();  //necessary to prevent premature disposal
        retImage = img;
    }
    return retImage;
}

以下是ResourceManager上的MSDN,并且有许多与其使用有关的SO问题。