未示出CSS 3 web浏览器组件(WebBrowser component not showing

2019-07-29 01:58发布

我建立一个软件,需要一个WebBrowser组件。 不幸的是,将无法正确显示我的网页。

我的内容使用这个CSS样式:

.content_mid{
background-image:url(http://img.awesome-o.net/Content_Mid.png);
background-size: 100% 100%;
vertical-align:text-top;
padding-left: 40px;
padding-right:20px;
min-height:400px; 
}

因为我已经找到了WebBrowser组件使用interwebs资源管理器的安装版本,我查了Internet Explorer中的HTML,它完美展现。

在这里,你看到它显示了IE:

这里是它如何显示网页浏览器组件:

所以,我检查浏览器的版本:

Debug.WriteLine("WebBrowser version: " + webBrowser1.Version);
output: WebBrowser version: 9.0.8112.16443

所以这应该是正常的,我猜。

Answer 1:

此页面介绍如何强制浏览器控件使用特定的渲染模式。

您也可以尝试这个DOCTYPE

<!DOCTYPE html>

和/或头部元素此元元

<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">


Answer 2:

只是为了进一步参考其他人需要这样的:

首先:由于BOO和莱克斯李帮我找到了答案,我的问题。

你必须设置一定的注册表,以正确的价值:

有32位和64个应用程序的两个不同的密钥组。

32位:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Value Key: yourapplication.exe

64位:

HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION

Value Key: yourapplication.exe

该值设置此关键是(从MSDN这里拍摄)为十进制值:

9999 (0x270F)
Internet Explorer 9. Webpages are displayed in IE9 Standards mode, regardless of the  !DOCTYPE directive.

 9000 (0x2328)
 Internet Explorer 9. Webpages containing standards-based !DOCTYPE directives are displayed in IE9 mode.

8888 (0x22B8)
Webpages are displayed in IE8 Standards mode, regardless of the !DOCTYPE directive.

8000 (0x1F40)
Webpages containing standards-based !DOCTYPE directives are displayed in IE8 mode.

7000 (0x1B58)
Webpages containing standards-based !DOCTYPE directives are displayed in IE7 Standards mode.

即使是艰难的MSDN声称,9000是自动分配的值。 Apperently这是不正确的。

下面你可以找到的代码如何将这些项添加到您的注册表。 请不就是你的应用有不同的processname时调试。

RegistryKey key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true);
        if (key != null)
        {
            key.SetValue("YourApplicationName.exe", 9000, RegistryValueKind.DWord);
        }

        key = Registry.LocalMachine.OpenSubKey(@"SOFTWARE\Wow6432Node\Microsoft\Internet Explorer\MAIN\FeatureControl\FEATURE_BROWSER_EMULATION", true);
        if (key != null)
        {
            key.SetValue("YourApplicationName.exe", 9000, RegistryValueKind.DWord);
        }

所以感谢所有的好运

编辑:用户帐户控制应该关闭,以使此代码工作。



Answer 3:

还可以响应头添加到称为X-UA-兼容IE =边沿的值IIS应用程序。 我倾向于将它添加到我的web.config



文章来源: WebBrowser component not showing CSS 3