我将创建一个表示树视图的 Web 服务器控件。所以我想用 2 张图片来表示 + 和 - 来展开/折叠。如何以在页面上呈现时可用作图像源的方式将其构建到控件中?
由于这将位于已编译的 Web 控件库中,因此我不想依赖 Web 应用程序中的外部图像。
编辑:
根据Andre Kraemer的这个回答,我做了以下事情:
在 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 错误,它与指向实际资源的路径无关!
编辑:
我找到了解决方案!
我发现这是 C# 和 VB 之间的区别。请参阅我自己对这个问题的回答。