WebBrowser未加载我的页面

本文关键字:我的 加载 WebBrowser | 更新日期: 2023-09-27 17:57:56

我的UI中有一个WebBrowser元素,我可以让它导航到托管页面,但当我想让它加载一个本地网页(在我的解决方案资源中)时,它只是显示一个空白页面,这正是托管在internet上的html文件。

browser.Navigate(new Uri("test.html", UriKind.Relative));

如果我更改UriKind或页面名称,它会显示一个错误,即找不到文件,所以我知道浏览器正确地找到了网页,但它不会呈现它。

我需要这样做,因为我想在用户脱机时显示页面。

WebBrowser未加载我的页面

如果html文件的构建操作为Content,则如果设置了相对路径,则可以从安装位置直接访问它。

如果你想在页面之间导航或在文件中包含其他资源(包括外部css、js甚至图像),那么你要么需要将所有文件复制到IsolatedStorage并从那里查看它们,要么从外部托管它们。

编辑:
MSDN有一篇文章解释了将文件复制到IsolatedStorage,这样就可以在WebBrowser控件中查看这些文件,网址为http://msdn.microsoft.com/en-us/library/ff431811(v=vs.92).aspx

浏览器无法从App/Dll中读取资源。然而,如果你把文件和你的应用程序放在同一个文件夹里,你可以这样做:

 var home = System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase;
 browser.Navigate(new Uri("file://" + home + "/test.html");