gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:54:25 33 4
gpt4 key购买 nike

在我的 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/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com