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

Posted

技术标签:

【中文标题】Win8上透明Webview的库/解决方法?【英文标题】:library/workaround for transparent Webview on Win8? 【发布时间】:2012-09-05 15:05:28 【问题描述】:

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

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

是否有让 Webview 透明的库或解决方法?

【问题讨论】:

那个帖子似乎已经回答了你的问题。 它回答的唯一问题是功能是否存在。如果有库或解决方法,它不会回答。 【参考方案1】:

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

<WebView DefaultBackgroundColor="Transparent"/>

【讨论】:

这个代码对我有用,你能提供你的代码吗?也许您将 webView 颜色与另一个属性重叠 这是我的代码,完美运行 你是对的。我真的很抱歉。可能是我使用的网页没有正确设置透明背景。 请您回复我的评论,也许其他人会觉得它有帮助。谢谢 删除多余的字符。 @Andre - 请删除反对票,因为代码工作得很好。【参考方案2】:

有一个解决方法,它使用 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

【讨论】:

以上是关于Win8上透明Webview的库/解决方法?的主要内容,如果未能解决你的问题,请参考以下文章

安装win8/win10提示无法在驱动器0分区上安装windows解决方法

Win8安装程序出现25022503错误解决方法

Win8.1/Win10在某些程序输入中文变成问号的解决方法

Swift WKWebview---解决的常见问题

当我加载 pdf url 时,Webview 有时看起来像白色或透明

win8 win10 安装msi 提示25022503的错误代码