2013年2月24日星期日

C# 嵌入式资源


1、手动嵌入式资源
右键工程-添加-现有项-图片或者文本
点击图片或者文本-生成操作-嵌入的资源 //这一步非常重要
这样添加的图片或者文本就打包到exe中
可以这样访问:
Assembly assembly = GetType().Assembly;
System.IO.Stream streamSmall = assembly.GetManifestResourceStream("WindowsFormsApplication1.event.jpg");
//当作为一个资源被嵌入后,资源的完整名称会由项目的默认命名空间与文件名组成
Bitmap BackgroundImg = new Bitmap(streamSmall);
pictureBox1.Image = BackgroundImg;

Assembly assembly = GetType().Assembly;
System.IO.Stream streamSmall = assembly.GetManifestResourceStream("WindowsFormsApplication1.NewFolder1.TextFile1.txt");
StreamReader sr = new StreamReader(streamSmall);
string text = sr.ReadToEnd();
MessageBox.Show(text);

2、手动非嵌入式资源
右键工程-添加-现有项-图片或者文本
点击图片或者文本-生成操作-内容  //如果不进行任何操作,默认就是非嵌入式资源
这样添加的图片或者文本就打包到exe中
可以这样访问:
通过绝对路径和相对路径作为外部资源访问

/////////////////////////////////////////////
3、.net提供的访问嵌入式资源
Resources.resx,Form1.resx怎么使用?  //只需要添加,不用任何操作,默认就是嵌入式资源
每创建一个窗体就会自动生成一个.resx文件,可以在这个文件中加入字符串、图像、图标、文件等。
项目编译时,生成exe文件,这些图像、图标、文件等都会被写入 exe 文件中。

每一个窗体都有一个资源文件,并且项目有一个共用的资源文件,最好使用这个共用的资源文件,查看项目属性里,选中资源,
就可以加入自己要的资源 添加资源 - 添加现有文件,就可以反图片资源放进入。

读取这个图片资源,如已经加入了一个 a.bmp 图像,名称是 Pic

Bitmap bitmap = 项目的名称空间.Properties.Resources.Pic;
这就可能用了这个资源了。

具体的类位于,Properties目录中的 Resources.resx 文件中,打开看下就明白了。

资源文件也可以自己创建,像创建类一个。
这种嵌入式资源访问方式是.net内部提供的方式,与访问app.config方式类似,都是.net内部提供,当然也可以使用1自己手动创建

没有评论:

发表评论