【问题标题】:How to make a WebBrowser display the background color of text?如何使 WebBrowser 显示文本的背景颜色?
【发布时间】:2019-05-03 10:25:09
【问题描述】:

我有一个简单的.html 文件,定义如下。
如果我用普通的网络浏览器打开它,它的背景颜色可以正确显示。但是当我用 System.Windows.Forms.WebBrowser 控件打开时,无法显示背景颜色。

<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>

表单的TransparencyKey 没有帮助; WebBrowser 没有 BackGround 颜色属性。

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

【问题讨论】:

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


    【解决方案1】:

    为了修改一个Html页面内容的aspect,你需要修改HTML文档本身。
    表单的TransparencyKey 属性和/或WebBrowser 控件BackColor 属性不相关。这些属性(如果可用)会修改控件的外观,而不是 HTML 内容或其呈现。

    同样重要的是:WebBrowser 控件在没有其他指示时默认为 IE7 兼容模式。许多HTML 功能在此模式下不可用。

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

    请注意,密钥位于 CURRENT_USER 分支中。您无需提升权限即可对其进行修改。
    此外,这不是一个特殊的 hack。此注册表值适用于每个可执行文件(您在此处注册您自己的程序),它不会修改一般用户设置。臭名昭著的程序使用这种方法来设置 WebBrowser 控件的兼容模式。

    另一种非永久性的、针对文档的方法是使用 HTML5 格式设置 HTML 标头:

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

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

    <!DOCTYPE html>
    <html>
    <head>
      <meta http-equiv='x-ua-compatible' content='IE=edge'>
      <meta charset="UTF-8">
    <style>
    nw {
        background-color: Orange;
    }
    np {
        background-color: DodgerBlue;
    }
    </style>
    </head>
    <body>
    <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>
    </body>
    </html>

    【讨论】:

    • 通过使用 HTML5 格式设置 HTML 标头解决了问题。这个解决方案更适合我的情况,因为 WebBrowser 读取的 .html 文件是由这个应用程序生成的,它在控制之下(至少到目前为止)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-30
    • 2015-02-19
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 2011-08-29
    • 2012-05-27
    相关资源
    最近更新 更多