【发布时间】:2011-01-16 22:12:08
【问题描述】:
我将创建一个表示树视图的 Web 服务器控件。所以我想用 2 张图片来表示 + 和 - 来展开/折叠。如何将其构建到控件中,以便在页面上呈现时可以用作图像源?
由于这将在已编译的 Web 控件库中,我不想依赖 Web 应用程序中的外部图像。
编辑:
基于 Andre Kraemer 的 this answer,我做了以下事情:
在 AssemblyInfo.vb 中:
<Assembly: System.Web.UI.WebResource("MyCompany.MyWebControls.Resources.plus.gif", "image/gif")>
<Assembly: System.Web.UI.WebResource("MyCompany.MyWebControls.Resources.minus.gif", "image/gif")>
在我的RenderContents 覆盖:
Dim lPlusImage As New WebControls.Image()
Dim lMinusImage As New WebControls.Image()
lPlusImage.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "MyCompany.MyWebControls.Resources.plus.gif")
lMinusImage.ImageUrl = Page.ClientScript.GetWebResourceUrl(Me.GetType(), "MyCompany.MyWebControls.Resources.minus.gif")
lPlusImage.RenderControl(output)
lMinusImage.RenderControl(output)
我的大会名称是MyWebControls。
我的根命名空间是MyCompany.MyWebControls。
图像plus.gif 和minus.gif 位于名为Resources 的文件夹中,图像的Build Action 设置为Embedded Resource。
还是不行。我没有错误。我已经直接在浏览器中尝试了生成的图片url,bot什么也没有发生,只是一个空白页。
注意:
我尝试在资源名称中使用无效路径,结果完全一样,这让我想知道是否需要做一些特殊的事情来将实际资源映射到资源名称。仅当我在代码中使用的名称与 AssemblyInfo 中指定的名称不同时,才会出现 404 Not Found 错误,它与指向实际资源的路径无关!
编辑:
我找到了solution!
我发现这是 C# 和 VB 之间的区别。看到我自己的answer 这个问题。
【问题讨论】:
标签: asp.net vb.net image embedded-resource servercontrols