我们使用WPF WebBrowser控件来显示嵌入页面。在Windows 8上,我们观察到具有css位置的元素的奇怪跳跃行为:在滚动时固定。
同样的页面在Windows 8(也是FF,Chrome)上的IE10和Windows 7上的WPF WebBrowser控件中都能正常工作。
之前有没有人见过这种行为并且知道跳跃运动的修复?
与开发机器上的.Net版本4相比,测试机器上使用的.NET版本4.5(使用Win 8的Surface)是否可能成为问题?
开发环境:
测试环境:
客户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>
答案 0 :(得分:3)
如果加载到WebBrowser
控件和独立IE浏览器中的同一网页的行为存在差异,则通常可以通过实施WebBrowser Feature Control来解决问题。
一旦实现了功能控件,就可以验证<!DOCTYPE html>
是否观察到WebBrowser
,并且页面实际上是以HTML5标准模式here's how呈现的。
[更新] 当FEATURE_BROWSER_EMULATION设置为9000
并且META
标记固定为{{1}时,OP的示例页面实际上会正确呈现}( content =“IE9”是not a valid value)。
答案 1 :(得分:0)
我们再次检查了一台运行Windows 8的新机器并且错误消失了,经过一些检查后我们确定新机器安装了一些新的Windows 8更新。我们去检查Surface上的更新,在应用所有更新后,错误似乎消失了。
只需应用最新的Win 8更新,即使没有任何重新编译或进一步设置,错误也会得到修复。
现在滚动很顺利。相同的可执行文件没有变化,所以我想这毕竟是运行时库中的一些错误。