开发自定义控件,想放置自定义图标。这样做尝试使用 [ToolboxBitmap("MyResourcePictureFileName")] 属性中的解决方案资源文件,但未设置图标,而是显示默认用户控件图标。而固定路径工作正常
例如[ToolboxBitmap( @"C: rame.bmp")]
但我不想使用绝对位置。
问题:如何使用我的控件的自定义图像/图标
这是我的代码:
注意: frame.bmp 已经在我的资源中并且Action Property=Embedded Resource for build
// DONT WANT TO USE THIS --> [ToolboxBitmap( @"C:\frame.bmp")]
[ToolboxBitmap("Resources.frame.bmp")]
[ToolboxItem(true)]
public partial class MyCustomPanelControl : Panel
{
................
................
}
请指教,
谢谢
[ToolboxBitmap("Resources.frame.bmp")]
资源名称不正确,这是工具箱位图的一个长期存在的问题。首先确保你正确嵌入了位图,不要使用资源设计器:
.mresource public DefaultNamespace.frame.bmp
{
// Offset: 0x000000B8 Length: 0x000004F6
}
注意 .mresource 名称,这是您在属性中输入的名称。修正:
[ToolboxBitmap("DefaultNamespace.frame.bmp")]
用实际名称替换“DefaultNamespace”。
如果您将图像保存为资源并尝试使用 Properties.Resources.YourImage 获取其路径,它将无法正常工作,因为资源返回的是图像对象而不是其路径,正如您所期望的那样。
如果你想让它工作,编辑你的注释以接收图像对象或将图像保存到临时文件,然后使用它的路径,如:
string IMG_PATH = Path.GetTempPath();
IMG_PATH += "imagemsample.png"; //adds the name of the file you want
Properties.Resources.YourImage.Save(IMG_PATH);
然后你可以:
[ToolboxBitmap(IMG_PATH)]