4

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

在 Microsoft 论坛中,我读到此功能不可用的帖子:http: //social.msdn.microsoft.com/Forums/nl-BE/winappswithcsharp/thread/c47c0f2e-b2c7-4691-8a20-929174504877

是否有库或解决方法可以使 Webview 透明?

4

2 回答 2

4

只需在 XAML 中设置 WebView DefaultBackgroundColor="Transparent"的属性:

<WebView DefaultBackgroundColor="Transparent"/>
于 2014-01-27T14:38:42.550 回答
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 文档中找到:http: //msdn.microsoft.com/en-us/library/windows/apps/xaml/windows.ui.xaml.controls.webviewbrush

于 2013-01-17T12:27:03.280 回答