我建立一个软件,需要一个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
所以这应该是正常的,我猜。
此页面介绍如何强制浏览器控件使用特定的渲染模式。
您也可以尝试这个DOCTYPE
<!DOCTYPE html>
和/或头部元素此元元
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
只是为了进一步参考其他人需要这样的:
首先:由于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);
}
所以感谢所有的好运
编辑:用户帐户控制应该关闭,以使此代码工作。
还可以响应头添加到称为X-UA-兼容IE =边沿的值IIS应用程序。 我倾向于将它添加到我的web.config