1、前言
在用.net 开发中,我们经常要用到图片文件,如按纽的背景、光标文件等。把这些图片文件编译到资源文件中是很有必要的,这样我们在发布
程序时就不需要图片文件本身了。
2、vs中把图片文件编译到资源文件中
首先把图片文件加入到工程中,方法为:
右键单击工程,/添加/添加现有项,把图片文件加入到工程中。
图片文件编译到资源文件中,方法为:
右键单击图片文件 /属性,设“生成操作”一项为“嵌入的资源”。
3、使用编译到资源文件的图片
资源流的形式
首先获取资源流,方法为:
GetType().Assembly.GetManifestResourceStream(string sourceName); //获取资源流
注:sourceName=命名空间.+资源文件名
实例化资源文件,方法为:
以cursor对象为例:
cur=new System.Windows.Forms.Cursor(GetType().Assembly.GetManifestResourceStream(sourceName)); //实例化cursor对象
注 cur为 System.Windows.Forms.Cursor
也可以通过资源数组的形式:
首先获得资源文件中的资源数组,方法:
string[] res = GetType().Assembly.GetManifestResourceNames();//获取资源数组
然后通过资源流获取图片资源,方法:
cur=new System.Windows.Forms.Cursor(GetType().Assembly.GetManifestResourceStream(res[0])); //实例化cursor对象
注 cur为 System.Windows.Forms.Cursor
4、实例
m_bitmap = New System.Drawing.Bitmap(GetType(PanTool), "ZoomIn.bmp")
m_zoominMoveCur = New System.Windows.Forms.Cursor(GetType(PanTool), "ZoomIn_Move.cur")
m_zoominCur = New System.Windows.Forms.Cursor(GetType(PanTool), "ZoomIn.cur")
m_cursor = m_zoominCur
m_category = SunGIS.My.Resources.PanZoom_Category
m_caption = SunGIS.My.Resources.ZoomIn_Caption
m_message = SunGIS.My.Resources.ZoomIn_Message
注:
PanTool为当前代码所在的类的名称
SunGis为当前代码所在的命名空间
ZoomIn.bmp等为资源文件
ZoomIn_Caption为资源名称