c#资源中图标的路径

时间:2009-11-25 09:22:55

标签: c# toolbox

有谁知道如何将外部图标路径更改为嵌入式资源图标?

示例:我想更改ToolBoxItem的图标。我只能设置图标的路径。直接设置图片不起作用:

new ToolboxItemWrapper(typeof (MyItem9), "C:\\tmp\\item9.ico", "Item9"),

我想将此路径更改为嵌入式资源文件的路径:

new ToolboxItemWrapper(typeof (MyItem9), "MyAssembly.Resources.myIcon.ico", "Item9"),

有可能这样做吗?或者是否有可能直接设置图标?

谢谢, EL

3 个答案:

答案 0 :(得分:0)

除非您更改

中除文件路径之外的硬编码参数(第二个)的签名
new ToolboxItemWrapper(typeof (MyItem9), "C:\\tmp\\item9.ico", "Item9"),

除了与此代码相同的结果外,你不能这样做。

ToolboxItemWrapper(typeof (MyItem9), "MyAssembly.Resources.myIcon.ico", "Item9"),

但你可以这样做, 创建ToolboxItemWrapper类似

的构造重载
public class ToolboxItemWrapper
{
    public ToolboxItemWrapper(Type t,Image img, string prop)
    {
        /*Do setup as in*/

    }
}

稍后你可以这么做,

 new ToolboxItemWrapper(typeof (MyItem9), Properties.Resources.YourImage, "Item9"),

答案 1 :(得分:0)

笨蛋,误读了你的帖子。您不能直接设置图标,只能从路径

string res = "MyAssembly.Resources.myIcon.ico";
Stream s = this.GetType().Assembly.GetManifestResourceStream( res );
Icon icon = Icon.FromStream( s );

答案 2 :(得分:0)

我无法弄清楚如何解决这个问题所以我做了一个“脏”的解决方法:我将图标保存在临时文件夹中并在这个地方引用它们。这有效,但它不是一个非常干净的解决方案。