c# - 加载 .html,带有 css 引用,文件嵌入在资源中

标签 c# winforms browser

在我的 Windows 窗体应用程序中,我有一个简单的 Web 浏览器,它应该运行 .html包含 css 的文件风格的登记表。使用 webBrowser1.Navigate("http://www.example.com/mypage.html"); 远程加载页面时运行良好;但是,当我尝试嵌入 .html文件 [连同 css通过设置 Building Action 在资源中需要文件]至 Embedded Resource , webBrowser仅导航到 .html文件,同时未检测到 css文件,这会导致页面看起来令人毛骨悚然。

这是我到目前为止尝试过的代码。

.html文件:

  <link href="lang/en/compact.css" rel="stylesheet" type="text/css" />
  <link href="lang/en/lang.css" rel="stylesheet" type="text/css" />
  <link href="img/basics.css" rel="stylesheet" type="text/css" />

我如何获得 .html来自 Embedded Resources 的文件:

using (Stream stream = Assembly.GetExecutingAssembly()
                   .GetManifestResourceStream("DummyBrowserFormImprovements.HTML." + "mypage.html"))
    if (stream != null)
        using (var reader = new StreamReader(stream))
        {
            string result = reader.ReadToEnd();
            dummyBrowser1.DocumentText = result;
        }

不幸的是,上述方法只加载了 .html文件而不识别 css其中引用的文件;因此,有关如何嵌入 .html 的任何详细答案使用 js, css 的文件Windows 窗体中的外部文件以及如何将其加载到 webBrowser将非常感激。我希望我能清楚地表达我的问题,并提前致谢。

最佳答案

问题很可能是因为其他文件仍嵌入到您的应用程序中。浏览器将在哪里找到它们?

您可以将所有需要的嵌入文件写入临时目录,并让您的网络浏览器从那里加载 .html 页面。加载 html 页面后,它应该能够找到您的其他资源,因为它们将位于同一目录(或您创建的任何结构)中。

基本上我是说您可以将所有文件提取到一个临时目录结构中,例如:

C:\mytempsite\mypage.html
C:\mytempsite\lang\en\compact.css
C:\mytempsite\lang\en\lang.css
C:\mytempsite\img\basics.css

然后您可以将网络浏览器设置为navigate到“C:\mytempsite\mypage.html”

只要您可以在没有您的应用程序的情况下直接导航到此页面,并且页面加载正确,那么当它导航到那里时,您的应用程序应该可以正常工作。只需确保 mypage.html 具有格式正确的 html 并且是一个完整的页面。

关于c# - 加载 .html,带有 css 引用,文件嵌入在资源中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16040398/

相关文章:

c# - 如何在 PropertyGrid 中一键更改 bool 属性

google-chrome - 为什么 Chrome 比 Safari 更快,尽管它们都使用 Webkit?

c# - 如何更改我的 treeView 图标而不是 +,- 就像 c#.net win 窗体中的 Windows 资源管理器 TreeView

c# - 在 C# 中创建新对象时,{ } 的行为是否类似于 ( )?

c# - 多个线程使用 yield 访问 IEnumerable

c# - 如果我需要使用一个小表来部署应用程序,应该使用哪个数据库?

c# - 使用 .NET XmlSerializer 反序列化时使用多个命名空间

python - 无法将.Net的SaveFileDialog与pythonnet一起使用

html - HTML CSS 的最佳测试浏览器?

javascript - 如何在异常时停止浏览器