asp.net 2.0 自定义控件中的使用嵌入资源的一些总结
2005-11-25 11:19 无常 阅读(2217) 评论(2) 编辑 收藏 举报一、
- 在solution explorer把资源文件的Build Action属性设为[Embedded Resource]
- 然后将下面这行
[assembly: WebResource("WebCtrl.cutecat.jpg", "image/jpg")]
添加到在assemblyinfo.cs中。其实这个语句放任何cs文件里,保证放在最高级namespace外就行
WebCtrl.cutecat.jpg是资源名字,比如项目的Default namespace是“wuChang.WebControls”,
而图片文件MessagePanel_info.gif放在/images目录中,那么完整资源名就是wuChang.WebControls.images.MessagePanel_info.gif - 然后在程序中调用如下:
Image1.ImageUrl = this.Page.ClientScript.GetWebResourceUrl(this.GetType(), "wuChang.WebControls.images.MessagePanel_info.gif");
二、使用资源文件
1、添加一资源文件MessagePanel.resx,放在/images/文件夹中,MessagePanel.resxBuild Action属性默认就是[Embedded Resource],无需改动
2、添加一字符串资源,比如名为MessagePanelTemplate,内容自定
3、调用方法:
System.Resources.ResourceManager rm = new System.Resources.ResourceManager(rsPath, System.Reflection.Assembly.GetExecutingAssembly());
_templateString = rm.GetString("MessagePanelTemplate");
其中ResourceManager的第一个参数为资源的base naem,格式为:namespace + 资源文件名。比如MessagePanel.resx,则取MessagePanel。如果是MessagePanel.zh-cn.resx,也是取MessagePanel。
rm.GetString()的参数则是资源名字
三、在<head></head>中加入stylesheet link
在/images/中添加MessagePanel.css,Build Action属性设为[Embedded Resource]
在最外层namespace,添加[assembly: WebResource("wuChang.WebControls.images.MessagePanel.css", "text/css")]
调用方法:
strCssLink = string.Format("\n<link href=\"{0}\" rel=\"stylesheet\" type=\"text/css\" />\n", this.Page.ClientScript.GetWebResourceUrl(this.GetType(), "wuChang.WebControls.images.MessagePanel.css"));
string cssKey = "MessagePanelName";
if (this.Page.Header.FindControl(cssKey) != null)
return;
Literal ltlCss = new Literal();
ltlCss = new Literal();
ltlCss.ID = cssKey;
ltlCss.Text = strCssLink;
this.Parent.Page.Header.Controls.Add(ltlCss);
花了二天时间,边学边做,做了一个类似.Text中的MessagesPanel控件
源码在这里下载
MessagesPanel
参考:
http://www.cnblogs.com/birdshome/archive/2004/12/19/79309.html
另外想请教一个问题:
比如将某个.Text文本文件设为Embedded Resource的话,那在如何读出此文件的内容。