2010-10-27 41 views
2

我们的Silverlight应用程序需要显示它动态生成HTML页面的用户预览,所以我们要使用的web浏览器(或类似像Telerik的RadHtmlPlaceholder东西),以显示这些页面。问题在于HTML包含指向其他本地文件(如图像,Flash对象,CSS和JavaScript文件)的链接。 CSS和JavaScript可以内嵌在HTML中,但我还没有找到嵌入图像的方法。一些简单的像这样是行不通的:Silverlight WebBrowser - 打开本地文件?

创建HTML文件,并在独立存储的图像文件是可行的,但我不能得到的路径,创建HTML文件传给WebBrowser.Navigate(URI)。

读取HTML文件的内容,并要求WebBrowser.NavigateToString(字符串)将显示在页面上,但不是任何链接的图像或脚本。

链接到在线来源是不是一种选择,因为应用程序需要脱机工作(即在浏览器外),并表现会好得多,如果图像和Flash对象能够在本地缓存。

那么,有没有在WebBrowser控件显示一个包含从本地文件系统中的图像,或者是不可能的本地HTML文件的任何方式在Silverlight?

谢谢, 詹姆斯

回答

0

建成OOB只读取和写入到本地文件目录的System.IO功能。只要一切都在那里,你就可以用高信任度来使用它。除此之外,在AutomationFactory中使用已注册的COM对象是访问系统上任何位置文件的唯一方式。 file:// C:/ file.html的路径是从本地文件系统显示文件的URI。

+0

感谢乔丹,但打开本地HTML文件仍然无法正常工作。例如,这引发异常System.UnauthorizedAccessException的: 的OpenFileDialog openFileDialog1 =新的OpenFileDialog(); if(openFileDialog1.ShowDialog()== true) { \t string path =“file:///”+ openFileDialog1.File.FullName.ToString()。Replace('\\','/').Replace (“”,“%20”); \t MessageBox.Show(path); \t MyWebBrowser2.Source = new Uri(path,UriKind.Absolute); } 使用COM是不是一种选择,因为我想保持这种Silverlight应用程序和工作在OS X中 – JamesCo 2010-11-05 12:45:15