我在 IsolatedStorage 中有一些带有 HTML 文本的文件。我怎样才能在应用程序中显示这个?我目前正在使用WebView
它的NavigateToString("html content")
属性,但它不能很好地工作,就像我无法在它上面显示任何 UI 元素一样。有没有其他解决方案?
问问题
1424 次
1 回答
3
看来解决方案是从 html 的呈现中创建图像并显示它而不是实际的WebView
.
从这里,大胆地挖掘:
WebView 具有不能在 WebView 之上渲染其他 UI 区域(例如控件)的特点。这是因为窗口区域是如何在内部处理的,特别是如何处理输入事件以及如何绘制屏幕。如果你想渲染 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 回答