我正在使用 winforms webbrowser 控件在 Windows 窗体应用程序中显示一些内容。我正在使用 DocumentText 属性来编写生成的 HTML。这部分工作非常出色。现在我想在标记中使用一些图像。(不过,我也更喜欢使用链接的 CSS 和 JavaScript,这可以通过嵌入来解决。)
这几天我一直在谷歌上搜索,似乎找不到标题问题的答案。
我尝试使用相对引用:应用程序 exe 在 bin\debug 中。图像位于项目根目录的“Images”目录中。我已将图像设置为在编译时复制到输出目录,因此它们最终位于 bin\debug\Images* 中。所以我然后使用像这样的“图像...”的参考,认为它将与 exe 相关。但是,当我查看嵌入式浏览器窗口中的图像属性时,我看到图像 URL 为“about:blankImages/*”。当 HTML 写入控件时,一切似乎都与“about:blank”相关。缺少位置上下文,我无法弄清楚相对文件资源引用要使用什么。
我戳了一下控件的属性,看看是否有办法设置一些东西来解决这个问题。我创建了一个空白的 html 页面,并使用“Navigate()”方法将浏览器指向它,并使用文件的完整本地路径。这适用于浏览器报告空白页面的本地“file:///...”路径。然后我再次写入浏览器,这次使用 Document.Write()。同样,浏览器现在将“about:blank”报告为 URL。
除了将动态 HTML 结果写入真实文件之外,没有其他方法可以引用文件资源吗?
我将尝试最后一件事:构建图像的绝对文件路径并将其写入 HTML。我的 HTML 是使用序列化对象的 XML 的 XSL 转换生成的,因此我需要使用一些 XSL 参数,这将花费一些额外的时间,因为我对它们不太熟悉。