如何在C#中使用WebBrowser控件加载本地HTML页面

7

我有许多本地HTML页面。我想在Web浏览器控件中显示这些本地HTML页面。当我添加新页面时,它应该附加到先前的页面。

以下是设置URL的示例代码:

for( int i=0; i<=filecount; i++)
    web-browser.Url = new Uri(filepath[i]);

但是在运行时,它会弹出文件下载提示框,并且网页浏览器是空白的。


1
你的filepath[i]变量里是什么?如果是本地文件,那么在它们前面添加“file://”。另外,你不应该使用web-browser.Navigate(<url>)函数吗? - Gerald Versluis
3个回答

22

你可以将单个页面加载为

FileStream source = new FileStream(filepath, FileMode.Open, FileAccess.Read);
webBrowser1.DocumentStream = source;
甚至是像这样
string html = File.ReadAllText(filepath);
webBrowser1.DocumentText = html;

但是,如果你有相对路径中的图片、CSS或JS,请使用:

Uri uri = new Uri(filepath);
webBrowser1.Navigate(uri);

2
谢谢 Mobel,现在它能够工作了。但是它无法显示图片。 - Mayuresh
如果您想加载带有相关图像的HTML,请使用Navigate方法,例如:var uri = new Uri(filepath); webBrowser1.Navigate(uri); - Moble Joseph
1
如果你想把那些HTML文件作为解决方案的一部分而不是一个文件夹,你可以将这些HTML和相关文件作为内容添加到你的项目中,并在属性中更改为“复制到输出目录”:始终复制选项。然后像这样加载它:string curDir = Directory.GetCurrentDirectory(); var url = new Uri(String.Format("file:///{0}/{1}", curDir, "test.html")); webBrowser1.Navigate(url); - Moble Joseph
1
太好了,它可以用于HTML文件。但现在我有一个新问题。是否可能在WebBrowser控件中加载本地XHTML页面? - Mayuresh
有没有关于在Web浏览器中加载巨大的XML文件的想法..我的XML文件大小为65 GB。 - Madhi

0
webrowser.Navigate(filepath[i]); 

我记得有点像这样... ;)


-1

我尝试了:

FileStream source = new FileStream(filepath, FileMode.Open, FileAccess.Read);
webBrowser1.DocumentStream = source;

我也必须添加这个:

webBrowser1.DocumentStream.Close();

2
这是程序相关内容,需要将其从英语翻译成中文。请仅返回翻译后的文本:这不是对该问题的答案。 - Kevin Hernandez

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接