C# 加载资源中嵌入的带有css引用的.html文件

C# 加载资源中嵌入的带有css引用的.html文件,c#,winforms,browser,C#,Winforms,Browser,在我的windows窗体应用程序中,我有一个简单的web浏览器,它应该运行一个.html文件,其中包含一个css样式的注册表。使用webBrowser1远程加载页面时,它运行得非常好http://www.example.com/mypage.html");;但是,当我试图通过将构建操作设置为嵌入资源,将html文件[以及所需的css文件]嵌入到资源中时,webBrowser仅导航到html文件,而没有检测到css文件,这会导致令人毛骨悚然的页面外观 以下是我迄今为止尝试过的代码 .html文件:

在我的windows窗体应用程序中,我有一个简单的web浏览器,它应该运行一个
.html
文件,其中包含一个
css
样式的注册表。使用
webBrowser1远程加载页面时,它运行得非常好http://www.example.com/mypage.html");;但是,当我试图通过将
构建操作
设置为
嵌入资源
,将
html
文件[以及所需的
css
文件]嵌入到资源中时,
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
文件,而不识别其中引用的
css
文件;因此,任何关于如何在windows窗体中嵌入使用
js、css
外部文件的
.html
文件以及如何将其加载到
webBrowser
的详细答案都将非常受欢迎。我希望我能清楚地表达我的问题,并提前表示感谢。

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

您可以将所有必需的嵌入文件写入临时目录,并让web浏览器从那里加载.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,并且是一个完整的页面。

这不起作用,我已尝试使用浏览器webBrowser.DocumentText=File.ReadAllText(@“C:\mypage.html”);[拥有所有需要的资源]它也无法加载它们…“有没有其他方法可以直接从资源中运行它而不必提取它?我不知道,也许其他人可以想到,但是逻辑上,我不明白如果css文件仍然嵌入在应用程序中,web浏览器控件如何找到它们。我能想到的唯一其他方法是将所有css和其他文件作为内联代码。然后你只有一个文件,可以将你的web浏览器DocumentText设置为该文件的文本。可能有一种方法可以让我检测浏览器何时请求css文件,然后我用嵌入的资源文件响应浏览器。检查这个问题似乎有很多关于使用res://协议的信息这可能是你需要什么。
C:\mytempsite\mypage.html
C:\mytempsite\lang\en\compact.css
C:\mytempsite\lang\en\lang.css
C:\mytempsite\img\basics.css