asp.net自定义控件中ToolboxBitmap元数据设置详细说明

王朝学院·作者佚名  2009-04-16
窄屏简体版  字體: 小  |  中  |  大  |  超大  

在asp.net应用的过程中,少不了的会创建一些自定义服务器控件,但控件完成后,默认的图标是统一的蓝色齿轮的图标,没有个性,也不能很好的直观表示控件的作用,这时我们需要自己添加自定义的工具图标

自定义图标为16像素宽高,256色的BMP图片,并设置图标文件的BuildingAction(生成操作)属性为嵌入的资源,但我们添加完成后在工具箱里显示不了自定义图标,这与我们类文件的名称空间有关

例一:

说明:控件未定义名称空间,图标文件名与控件的名称一致

控件集名称为:MyControls.dll

控件名称为:MyBox(未自定义名称空间)

图标名称为:MyBox.bmp

MyBox添加元数据(此结构下也可以不添加元数据,默认会查找MyBox.bmp图标文件,网上大多是这样介绍的)

<ToolboxBitmap(GetType(MyBox), "MyBox.bmp">

在工具箱中添加此控件,可以看到控件显示了自定义图标

例二:

说明:控件定义了名称空间:Boxes,图标文件名与控件名一致

控件集名称为:MyControls.dll

控件名称为:MyBox

自定义名称空间:Boxes

图标名称为:MyBox.bmp

MyBox添加元数据

<ToolboxBitmap(GetType(MyBox), "MyBox.bmp">

在工具箱中添加此控件,但这个时候控件显示的是默认的齿轮图标,而不是自定义的MyBox.bmp图标

这个时候我们要做的是重命名原来的MyBox.bmp以适应控件的名称空间:Boxes.MyBox.bmp

注意上面添加的元数据的图片name不用修改

这时再添加控件到工具箱中,又可以看到可爱的自定义图标了

例三:

说明:控件定义了名称空间:Boxes,图标文件名与控件名不相同

控件集名称为:MyControls.dll

控件名称为:MyBox

自定义名称空间:Boxes

图标名称为:Box.bmp

MyBox添加元数据

<ToolboxBitmap(GetType(MyBox), "Box.bmp">

重命名Box.bmp以适应控件的名称空间:Boxes.Box.bmp

再添加控件到工具箱中

在MSDN文档中提到:

ToolboxBitmapAttribute (t, name)

参数

t

一个 Type,将在它的定义程序集中搜索位图资源。

name

嵌入的位图资源的名称。

备注

此构造函数在定义由 t 参数指定的类型的程序集中搜索嵌入的资源。此构造函数搜索名为 namespace.name 的资源,其中 namespace 是由 t 参数指定的类的定义所在的命名空间。例如,假定 ControlA 是 AssemblyA.dll 中的 NamespaceA 的类,而且已将“MyBitmap.bmp”传递给 name 参数。则构造函数在 AssemblyA.dll 中搜索命名为 NamespaceA.MyBitmap.bmp 的资源。

在添加的时候最好是手动添加到工具箱,VS自动添加时很奇的不会显示自定义图标,它默认添加的是控件项目下的obj文件夹下的DLL文件,如果你手动添加同一文件,却是会显示自定义图标的!很奇怪的问题啊,有哪位仁兄知道如何解决这个自动添加不能显示自定义图标的问题么?

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航