关于控件图标的事,可没少瞎折腾,从前年想入手这方面开始,就没搞定过。N多大虾的贴子都翻烂了,也没找出个头绪来。其实最开始有次真给蒙出来了!不过后来改控件,也不知道改哪了。没了!于是满世界的CSDN、MSDN。。。。NB的人,NB的文章看了眼晕,打死也没有弄出来。昨天项目中遇到问题,看了一哥们的控件(WEBABCD:至今佩服得五体投地)发现他的都带图标,于是又试了一天,就为了一个图标。搞了N次终于弄明白了。现在写下来,以备忘记!也给新来的提个醒。
翠花,上代码!
--------
本控件严格来说不算控件,什么也没实现。只是为了搞这个死图标。
先看下效果图:怎么显示图(晕死)
真是横垅地撵兔子,一步一个坎呀!不过终于搞定了!
下面说下方法:
1 准备图片:16*16 256色的。不好弄?当然不好弄了!没看我的图标都是从别人的COPY过来的吗!
2 图片的名称必须与控件的类名相同。如果你非要把扩展名也弄一样了,我看你还是去一年级再学一遍吧。呵呵
3 把图片加入到项目中(位置下一点再讲)。如图:
4 最关键的就是这步。也就是关于图片放置的位置。其实原则只有一个,无论你放哪,必须保证编译后图后的命名空间的指向与控件相同。否则等待你的就是蓝色的小齿轮。
5 如果图片和控件类放在个目录下的情况下,则下列两种方法都是好使的。
6 终极大法。
Webabcd 大侠用的就是这种方法。个人认为这种方法最好。不受命名空间的限制。如果有多个控件可以都放在一起管理。
--------------------------------------------我是讨厌的分隔符-----------------------------------------------------
为什么原理图上传不了了?改个文件名好使了
看定义可以看出。它是在一个指定的位置找你给它命名的图片。
所以无论是直接入放在控件目录或是放在其它位置,只要可以找到就可以。但是如果文件名不同却不好使。按理来说我找到位置,我还知道文件名,就应该无论什么名都可以,为什么偏要和控件类一个名,这好像与此函数的定义有些不符,不清楚什么原因。
-------------------------当 当 当 告一段落-----------------------------------
下面说下标记前缀
在ASSEMBLY文件中定义就可以,只是有一点要注意。命名空间与你的控件要相符
如:
[assembly: TagPrefix( "GoldWisdom", "GW" )]
开始我的控件因为在GWEdit文件下。我就把控件的命名空间写成 GoldWisdom.GWEdit。这样是不行的。显示为:<cc1:GWEdit></cc1:GWEdit>
把控件的命名空间中的GWEdit去掉了就可以了!
唉好累呀!会的不多,让各位见笑了!