4

那么在我的 Windows 窗体应用程序中,我有一个简单的 Web 浏览器,它应该运行一个.html包含css样式注册表单的文件。使用远程加载页面时,它运行得非常好webBrowser1.Navigate("http://www.example.com/mypage.html");;但是,当我尝试通过设置 to 将文件.html[连同css所需文件一起] 嵌入资源中时,只会导航到文件而不检测文件,这会导致令人毛骨悚然的页面外观。Building ActionEmbedded ResourcewebBrowser.htmlcss

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

.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引用的文件;因此,任何有关如何在 Windows 窗体中嵌入.html使用js, css外部文件的文件以及如何将其加载到 a 中的详细答案webBrowser不胜感激。我希望我能清楚地表达我的问题并提前致谢。

4

1 回答 1

1

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

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

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

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

然后您可以将 Web 浏览器设置为导航到“C:\mytempsite\mypage.html”

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

于 2013-04-16T15:07:00.223 回答