0

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

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

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

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

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

有没有可能做到这一点?或者甚至有可能直接设置图标?

谢谢,埃尔

4

3 回答 3

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"),
于 2009-11-25T10:14:51.740 回答
0

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

string res = "MyAssembly.Resources.myIcon.ico";
Stream s = this.GetType().Assembly.GetManifestResourceStream( res );
Icon icon = Icon.FromStream( s );
于 2009-11-25T10:23:18.360 回答
0

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

于 2009-11-30T09:02:20.957 回答