2

私はIsolatedStorageにHTMLテキストを含むいくつかのファイルを持っています。これをアプリに表示するにはどうすればよいですか?現在、このプロパティで使用WebViewしていNavigateToString("html content")ますが、UI要素を表示できないため、うまく機能しません。これに対する代替の解決策はありますか?

4

1 に答える 1

3

解決策は、html のレンダリングから画像を作成し、実際の の代わりにそれを表示することWebViewです。

ここから、太字の鉱山:

WebView には、コントロールなどの他の UI 領域を WebView の上にレンダリングできないという特性があります。これは、ウィンドウ領域が内部で処理される方法、特に入力イベントの処理方法と画面の描画方法が原因です。HTML コンテンツをレンダリングし、その HTML コンテンツの上に他の UI 要素を配置する場合は、レンダリング領域としてWebViewBrushを使用する必要があります。WebView は引き続き HTML ソース情報を提供し、要素名バインディングとSourceNameプロパティを介してその WebView を参照します。WebViewBrush には、このオーバーレイの制限はありません。

重複するコンテンツ (ドロップダウン リストやアプリ バーなど) がたまにしかないインタラクティブな WebView を表示する場合は、必要に応じて一時的に WebView コントロールを非表示にして、WebViewBrush塗りつぶしを使用する要素に置き換えることができます。その後、重複するコンテンツがなくなったら、元の WebView を再度表示できます。詳細については、WebView コントロールのサンプルを参照してください。

ここにあるサンプルコード:

//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; 
} 
于 2012-09-19T21:23:09.670 に答える