2011-05-31 65 views
0

我在我的UI中有一个WebBrowser元素,我可以将其导航到托管页面,但是当我希望它加载本地网页(这是我的解决方案资源中)时, HTML文件托管在互联网上,它只是显示一个空白页面。WebBrowser未加载我的页面

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

如果我改变UriKind或者它表示该文件无法找到一个错误页面名称,所以我知道浏览器找到正确的网页,但它不会渲染。

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

回答

0

如果HTML文件有Content构建动作,你可以从安装位置,如果你设定一个相对路径直接对其进行访问。

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

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

+0

我确实需要JS和图像,但不需要导航,因为它只是一个包含我需要的所有内容(100多个图像)的HTML,我应该如何执行IsolatedStorage过程? (复制和访问),thx – 2011-06-03 04:24:05

0

浏览器无法从App/Dll读取资源。但是,你必须在同一文件夹,你的应用程序文件,你可以这样做:

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

我得到一个“System.MethodAccessException”当系统创建home变量:S附加信息:试图访问该方法失败:System.Reflection.Assembly.GetName() – 2011-05-31 03:36:41

+0

这听起来像Windows Phone 7上的安全限制。我从来没有使用过这个表单。希望有人在那里会启发我们。 – 2011-05-31 03:41:13

+0

WP7不支持“file://”协议 – 2011-05-31 08:20:30