虽然它看起来没有希望,但有人知道是否可以将WebBrowser的背景设置为透明,以便应用程序的背景作为webbrowser中内容的背景?
我要问的原因是不是在应用程序中存储一些半静态文本,而是将其存储在Web上并从那里引用它。 (因此,如果我们需要更新,我们不必更新应用程序)我们在iOS和Android中都有透明控件,并且也想在这里进行。
如果你做不到,你能想到其他选择吗?
答案 0 :(得分:2)
这是不可能的,因为WebBrowser控件不是“真正的”(完全管理的)silverlight控件,它本质上只是本机控件的包装器,不支持透明度。
作为替代方案,只需从网站上获取内容/文本,并将其显示在支持透明度的控件中
根据您从网站获得的内容的格式将影响这是多么困难。 WrapPanel
(来自工具包)可能对这类事情有很大的帮助。
答案 1 :(得分:0)
这是一个穷人解决问题的方法,但也许会对你有所帮助:如果你只是希望webbrowser的背景与应用程序的背景 color 完全匹配,你可能会克服只是通过强制页面来解决问题..具有相同的bacground颜色。使用WebBrowser.InvokeScript并执行一个小型JS脚本,该脚本将使用bkgcolor执行document.body.background = #rrggbb。你可能想尝试添加'alpha',但我认为在最好的情况下你会得到白色。
进一步采用这种方法,您可以尝试截取您的应用程序,保存它,然后执行JS脚本来设置页面的bkgimage ..可以使用CSS设置bkgimage以不滚动页面内容,所以它实际上可能看起来不错,但我从未尝试过。
据我所知,WebBrowser最初支持设置背景,因为正如Matt所说,在内部,它是一个本机组件,准备渲染html内容,因此,它知道你的应用程序的一切,它只是保持写入页面的确切样式。页面总是有一些背景颜色 - 即。白色 - 因此渲染图像具有相同的效果。非常相似的“概念”也出现在另一些平台上 - 例如。 RIM / BlackBerry 4.x,5.x和我认为6.x也是如此。嗯,但是在第二种情况下,CSS不仅支持#RGB而且还支持#RGBA,因此nativehost可以使用适当的alpha通道发出渲染,只要你用alpha设置页面的body bkg颜色。但是我想它仍会变白。