2011-09-27 57 views
0

如何在WP7的WebBrowser控件中讀取現有的html文件?如何在WP7的WebBrowser控件中讀取現有的html文件?

我曾嘗試:

  1. 流stream = Assembly.GetExecutingAssembly()GetManifestResourceStream( 「abc.htm」); StreamReader reader = new StreamReader(stream); string html = reader.ReadToEnd(); Browser.NavigateToString(html);

  2. Browser.Navigate(new Uri(「abc.htm」,UriKind.Relative));

  3. var rs = Application.GetResourceStream(new Uri(「abc.htm」,UriKind.Relative)); StreamReader sr = new StreamReader(rs.Stream); string html = sr.ReadToEnd(); Browser.NavigateToString(html);

所有這三個不工作。方法1和3給出NullReferenceException,因爲流返回null,基本上它不讀取我的html文件。

這裏有什麼問題?我該如何解決它?

回答

1

當您使用編號3時,請確保您的HTML文件的生成類型設置爲「內容」。

+0

對不起 - 我在哪裏檢查? – Sri

+0

選擇HTML文件並查看其在Visual Studio中的屬性(通常位於VS的右下角)。有一個部分說'生成行動'。將其設置爲「內容」。 – keyboardP

+0

謝謝!是的,我看到設置爲「內容」。仍然沒有工作:( – Sri

0

如果你想使用選項2,你必須首先將文件複製到獨立存儲,如果它需要引用任何其他文件,因爲它不可能使用相對路徑(對其他文檔,圖像,js,css等)如果直接從XAP加載,則位於文檔中。

0

好了,所以這裏有一個例子:

在MainPage.xaml中

<Grid x:Name="LayoutRoot" Background="Transparent"> 
    <phone:WebBrowser x:Name="MyBrowser" 
         HorizontalAlignment="Stretch" 
         VerticalAlignment="Stretch" /> 
</Grid> 
在MainPage.xaml.cs中

public MainPage() 
    { 
     InitializeComponent(); 
     var rs = Application.GetResourceStream(new Uri("abc.html", UriKind.Relative)); 
     StreamReader sr = new StreamReader(rs.Stream); 
     string html = sr.ReadToEnd(); 
     this.MyBrowser.NavigateToString(html); 
    } 

請確保您有文件「abc.html 「(檢查拼寫錯誤,您的示例代碼是」abc。htm「)在您的項目的根文件夾中。將「內容」和「複製到輸出目錄」的操作構建爲「不要複製」。它應該在瀏覽器中顯示頁面。

+0

嗨 - 這一個也不工作..即使路徑和文件名是正確的,它給我NullReferenceException .. – Sri

+0

它的工作現在...這是一個模擬器問題! – Sri

0

對於第一和第三: 設置生成的HTML文件的操作屬性爲「資源」 否則會給你的NullReferenceException

對於第二:在WP7 瀏覽器控件不能直接導航到HTML文件添加到項目中。爲此,html文件必須位於獨立存儲中。 嘗試一下,我希望它能起作用。

(標記答案,如果有幫助的話)。

0

如果添加一個按鈕樣的內部命令它工作正常:

private void htmlLoader(object sender, EventArgs e) 
    { 
     var rs = Application.GetResourceStream(new Uri("abc.html", UriKind.Relative)); 
     StreamReader sr = new StreamReader(rs.Stream); 
     string html = sr.ReadToEnd(); 
     this.MyBrowser.NavigateToString(html); 
    } 
相關問題