2012-09-19 50 views
2

我在IsolatedStorage中使用HTML文本創建了一些文件。我如何在應用程序中顯示此內容?我目前正在使用WebView和它的NavigateToString("html content")屬性,但它不能很好地工作,就像我無法在其上顯示任何UI元素一樣。有沒有其他解決方案?在WinRRT應用程序中顯示HTML內容

+0

web視圖是顯示HTML的適當方式。爲什麼不能在其上顯示UI元素? (解釋或顯示你的代碼不符合你的要求)。 – mydogisbox

+0

「WebView具有其他UI區域(如控件)無法呈現在WebView之上的特點」此評論來自[MSDN](http://msdn.microsoft.com/zh-cn/library/windows/apps/ windows.ui.xaml.controls.webview) –

回答

3

看來解決的辦法是從html的渲染中創建一個圖像並顯示,而不是實際的WebView

here,粗體礦:

web視圖具有其他UI地區如控制不能在web視圖的頂部呈現的特性。這是因爲內部處理窗口區域的方式,特別是如何處理輸入事件以及屏幕如何繪製。 如果要渲染HTML內容並將其他UI元素放置在HTML內容的頂部,則應使用WebViewBrush作爲渲染區域。 WebView仍提供HTML源信息,並通過元素名稱綁定和SourceName屬性引用該WebView。 WebViewBrush沒有這個覆蓋限制。

如果要顯示僅偶爾具有重疊內容的交互式WebView(例如下拉列表或應用欄),則可以在必要時臨時隱藏WebView控件,並使用填充WebViewBrush填充元素替換它。然後,當重疊內容不再存在時,您可以再次顯示原始WebView。有關詳細信息,請參閱WebView control sample.

實施例代碼中發現here

//create webview and rectangle 
<WebView x:Name="WebView6" /> 
<Rectangle x:Name="Rect1"/> 

//put content in the webview 
protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 

    // Ensure that our Rectangle used to simulate the WebView is not shown initially 
    Rect1.Visibility = Windows.UI.Xaml.Visibility.Collapsed; 

    WebView6.Navigate(new Uri("http://www.bing.com")); 
} 

//make the rectangle visible when you want something over the top of the web content 
Rect1.Visibility = Windows.UI.Xaml.Visibility.Visible; 

//if the rectangle is visible, then hit the webview and put the content in the webviewbrush 
if (Rect1.Visibility == Windows.UI.Xaml.Visibility.Visible) 
{ 
    WebViewBrush b = new WebViewBrush(); 
    b.SourceName = "WebView6"; 
    b.Redraw(); 
    Rect1.Fill = b; 
    WebView6.Visibility = Windows.UI.Xaml.Visibility.Collapsed; 
}