One possible solution would be to enforce a certain mode of rendering. Essentially, emit the below meta tag into the document (to render in ie9 mode). You will probably have to replace it if one already exists in the document:
<meta http-equiv="X-UA-Compatible" content="IE=9"></meta>
Where "content" is one of the values you need in the available list:
http://msdn.microsoft.com/en-us/library/ie/ms533876(v=vs.85).aspx[
^]
With code similar to below:
var web = <your webbrowser control>;
var doc = web.Document;
var allMetas = doc.GetElementsByTagName("meta");
var needsReplaced = false;
foreach(HtmlElement meta in allMetas)
{
var target = meta.GetAttribute("http-equiv").ToLower();
if(target == "x-ua-compatible")
{
needsReplaced = true;
meta.SetAttribute("content", "IE=9");
}
}
if(!needsReplaced)
{
var meta = doc.CreateElement("meta");
meta.SetAttribute("http-equiv", "X-UA-Compatible");
meta.SetAttribute("content", "IE=9");
var head = doc.getElementsByTagName("head")[0];
head.AppendChild(meta);
}
Sources:
MetaTag: http://stackoverflow.com/questions/4612255/regarding-ie9-webbrowser-control
"Content" values: http://msdn.microsoft.com/en-us/library/ie/ms533876(v=vs.85).aspx
Change MetaTag: http://schroedman.wordpress.com/2010/11/03/c-read-meta-tags-with-webbrowser-control/