2012年2月25日 星期六

內嵌資源應用

參考引用
--
 C#中如何使用內嵌資源(文字、圖片)
方法一:直接使用本地文件
1、將圖片和文件加入項目(可單獨建目錄存放他們,如Resources),例如:
progress.gif和textFile.txt
2、將圖片和文件的生成操作設置為:嵌入的資源。
3、使用GetManifestResourceStream()方法讀取資源:
System.Reflection.Assembly asm = System.Reflection.Assembly.GetEntryAssembly();
System.IO.Stream imgStream = asm.GetManifestResourceStream("MyNamespace.Resources.progress.gif");
pictureBox1.Image = System.Drawing.Image.FromStream(stream);
System.IO.StreamReader txtStream = new System.IO.StreamReader(_assembly.GetManifestResourceStream("MyNameSpace.Resources.textFile.txt"));
textBox1.Text = txtStream.ReadLine();
備註:如果資源存放在單獨的Resouces目錄中,則GetManifestResourceStream()方法的參數為:"MyNamespace.Resources.progress.gif";如果直接在項目根目錄下,則為"MyNamespace.progress.gif"。即參數的命名規則為:項目的命名空間.資源子目錄名.資源子目錄名.…….文件名.擴展名,資源子目錄可以有多層,也可以沒有。
參考文獻:http://support.microsoft.com/kb/319292/zh-tw

方法二:獨立編譯資源
1、在任一項目中執行下列代碼:
System.Resources.ResourceWriter rw = new System.Resources.ResourceWriter("test.resources");
Image img = Image.FromFile("progress.gif");
rw.AddResource("progress", img);  //圖片
rw.AddResource("loading", "loading, please wait...");  //文字
rw.Close();
注意:文件擴展名必須是resources。
2、將test.resources添加到需要使用資源的項目中,生成操作設置為:嵌入的資源。
3、用ResourceManager()方法將資源讀出。
Assembly asm = Assembly.GetEntryAssembly();
ResourceManager rm = new ResourceManager("MyNamespace.test");  //MyNamespace是你程序的命名空間,test是指test.resources。
pictureBox1.Image = (Image)rm.GetObject("progress");  //讀圖片
textBox1.Text = rm.GetString("loading");  //讀文字
備註:ResourceManager()方法的參數命名規則為:項目的命名空間.資源子目錄名.資源子目錄名.…….資源文件名,注意沒有擴展名。

沒有留言:

張貼留言