如何使WebBrowser显示文本的背景色?

时间:2018-12-01 14:00:14

标签: c# winforms webbrowser-control background-color

我有一个简单的override fun onDraw(canvas: Canvas) { val colorID = when(state){ ACTIVE -> if(isHighlighted) R.color.tile_activeHighlight else R.color.tile_activeNormal SELECTABLE -> if(isHighlighted) R.color.tile_selectableHighlight else R.color.tile_selectableNormal UNSELECTABLE -> if(isHighlighted) R.color.tile_unselectableHighlight else R.color.tile_unselectableNormal //[...] } val newColor = ContextCompat.getColor(context,colorID) canvas.drawColor(newColor) } 文件,定义如下。
如果使用普通的Web浏览器打开它,则其背景颜色可以正确显示。但是当我使用System.Windows.Forms.WebBrowser控件打开它时,背景色无法显示。

.html

表格的<head> <meta charset="UTF-8"> <style> nw { background-color: Orange; } np { background-color: DodgerBlue; } </style> </head> <table style="width:100%"> <tr> <th>Time Created</th> <th>Content</th> </tr> <tr> <td>26/11/2018 20:39:21</td> <td><nw>hello</nw></td> </tr> </table>无济于事; WebBrowser没有TransparencyKey color属性。

有人知道为什么以及如何解决吗?

1 个答案:

答案 0 :(得分:1)

为了修改HTML页面内容的外观,您需要修改<ul *ngFor = "let f of Food"> <li>{{f.Name}} <ul> <li>{{f.Item[1]}}</li> <li>{{f.Item[2]}}</li> </ul> </li> <ul> 文档本身。
窗体的HTML属性和/或WebBrowser控件TransparencyKey属性无关。这些属性(如果可用)将修改控件的外观,而不是BackColor内容或其呈现。

也很重要:WebBrowser控件在没有 指示时默认为IE7兼容模式。许多HTML功能在此模式下不可用。

有多种方法可以设置/修改WebBrowser类的兼容模式。
您可以修改注册表项以永久设置IE11 / Edge兼容模式。看到这个答案:
How can I get the WebBrowser control to show modern contents?

请注意,密钥在HTML分支中。您不需要提升的特权即可对其进行修改。
另外,这不是特殊黑客。此注册表值是按可执行文件应用的(您在此处注册自己的程序),它不会修改常规用户设置。臭名昭著的程序使用此方法来设置WebBrowser控件兼容模式。

另一个基于文档的非永久性方法是使用HTML5格式设置HTML标头:

CURRENT_USER

将这些行添加到HTML文档中,将兼容模式设置为IE11 / Edge。
您的文档可以进行如下修改:

<!DOCTYPE html>
<meta http-equiv='x-ua-compatible' content='IE=edge,chrome=1'>