在我的 WPF 项目中,我需要呈现基于 HTML 的内容,其中内容存储在我的 WPF 项目引用的资源程序集中。
我查看了 WPF Frame 和 WebBrowser 控件。不幸的是,它们都只公开了导航事件(导航、导航),而不是任何允许我根据请求的 URL 返回从资源程序集中检索的 HTML 内容的事件。
我可以使用 Navigating 事件和 NavigateToString() 方法拦截导航请求并提供 HTML 内容。但这不适用于拦截图像、CSS 文件等的加载调用。
此外,我知道一个HTML 到 Flowdocument SDK 示例应用程序可能有用,但我可能必须大大扩展该示例以处理图像和样式表。
值得一提的是,我们还生成了要呈现的 HTML 内容(通过 Wiki 页面),因此源 HTML 在参考图像位置和使用的 CSS 样式表方面有些可预测(例如,可能没有 JavaScript)。我们希望显示来自互联网的随机 HTML 内容。
更新: 还可以为每个 HTML 页面创建一个 MHT 文件,这会将所有图像“内联”为 MIME 类型并减轻对更细粒度回调的需求。