Win8上透明Webview的库/解决方法?

时间:2012-09-05 15:05:29

标签: webview windows-8

我正在寻找一种在Win8(又名Metro风格应用)上创建具有透明背景的Webview的方法。如果我在HTML中将背景设置为透明,则Webview的背景将始终呈现为白色

在微软论坛中,我读了一篇帖子,说明此功能不可用:http://social.msdn.microsoft.com/Forums/nl-BE/winappswithcsharp/thread/c47c0f2e-b2c7-4691-8a20-929174504877

是否存在使Webview透明的库或解决方法?

2 个答案:

答案 0 :(得分:4)

在XAML中设置WebView的属性 DefaultBackgroundColor =“Transparent”

<WebView DefaultBackgroundColor="Transparent"/>

答案 1 :(得分:3)

有一种解决方法,它使用WebViewBrush将webview绘制成矩形。

首先将您的webview与矩形结合在一起:

<Grid>
     <WebView x:Name="WebView6" />
     <Rectangle Opacity="0.5" x:Name="Rect1"/>
</Grid>

在您的webview准备好并加载后(您可以使用WebView的LoadComplete事件),您可以运行以下代码:

WebViewBrush b = new WebViewBrush();
        b.SourceName = "WebView6";
        b.Redraw();
        Rect1.Fill = b;
        WebView6.Visibility = Windows.UI.Xaml.Visibility.Collapsed;

将webview绘制到矩形,然后折叠webview。

现在剩下的应该是显示您的webview的透明矩形。

不幸的是,你不能以这种方式与webview互动!

编辑:我自己使用此解决方法,它可以在msdn doc中找到: http://msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.ui.xaml.controls.webviewbrush