2010-10-27 71 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