WPF WebBrowser控件 – 位置:固定滚动时元素跳转(Windows 8)

我们使用WPF WebBrowser控件来显示embedded式页面。 在Windows 8上,我们观察到一个奇怪的CSS元素的跳跃行为:滚动时固定。

位置:固定在滚动时跳跃

在Windows 8(也是FF,Chrome)上的IE10以及Windows 7上的WPF WebBrowser控件中,相同的页面可以正常工作。

有没有人见过这种行为之前,知道跳跃运动的修复?

与开发机器上的.Net版本4相比,testing机器(Surface with Win 8)上使用的.NET版本4.5是否成为问题?

开发环境:

  • Windows 7的
  • Microsoft Visual Studio 2010版本10.0.30319.1 RTMRel
  • Microsoft .NET Framework版本4

testing环境:

  • 表面
  • Windows 8
  • Microsoft .NET Framework版本4.5

客户端XAML:

<Window x:Class="EmbeddedBrowserTest.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <WebBrowser HorizontalAlignment="Stretch" Name="webBrowser" VerticalAlignment="Stretch" Grid.Row="1" /> </Grid> </Window> 

演示页面HTML:

 <!DOCTYPE html> <html> <head> <meta http-equiv="X-UA-Compatible" content="IE=9" /> <title>minimal position fixed example</title> <style> body { margin: 0px } .header{ height: 60px; width: 960px; background-color: #cccccc; top: 0px; left: 0px; position: fixed; z-index: 10; } .content{ padding-top: 60px; height: 420px; width: 960px; background-color: lightsteelblue; } </style> </head> <body> <div class="header"> header </div> <div class="content"> content <br> 1 <br> 2 <br> 3 <br> 4 <br> 5 <br> 6 <br> 7 <br> </div> </body> </html> 

如果加载到WebBrowser控件和独立IE浏览器中的同一网页的行为存在差异,则通常可以通过实现WebBrowserfunction控件来解决该问题。

一旦function控件已经实现,validation<!DOCTYPE html> WebBrowser是否遵守<!DOCTYPE html>是有意义的,而页面实际上是以HTML5标准模式呈现的 。

[更新]当FEATURE_BROWSER_EMULATION设置为9000META标签固定为<meta http-equiv="X-UA-Compatible" content="IE=9" />content = IE9“ 不是一个有效的值 )。

我们再次检查一台运行Windows 8的新机器,错误消失,经过一些检查,我们确定新机器安装了Windows 8的一些新的更新。 我们去检查表面上的更新,应用所有的更新后,错误似乎已经消失。

没有任何重新编译或进一步的设置只是应用最新的Win 8更新错误是固定的。

现在滚动很顺利。 同样的可执行文件没有更改,所以我想这毕竟是运行时库中的一些错误。