问题描述
我们使用 WPF WebBrowser 控件来显示嵌入页面.在 Windows 8 上,我们观察到具有 css position:fixed 的元素在滚动时出现奇怪的跳跃行为.
We use the WPF WebBrowser control to display an embedded page. On Windows 8 we observe a strange jumping behavior of elements with css position:fixed while scrolling.
同一页面在 Windows 8 上的 IE10(还有 FF、Chrome)和 Windows 7 上的 WPF WebBrowser 控件中运行良好.
The same page works fine in IE10 on Windows 8 (also FF, Chrome) and in the WPF WebBrowser control on Windows 7.
以前有没有人见过这种行为并知道如何解决跳跃动作?
Has anyone seen this behavior before and knows a fix for the jumping motion?
与开发机器上的 .Net 版本 4 相比,测试机器上使用的 .NET 版本 4.5(Win 8 的 Surface)是否可能是问题?
Is it possible the .NET Version 4.5 used on the test machine (Surface with Win 8) be the Problem as compared to the .Net Version 4 on the dev machine?
开发环境:
- Windows 7
- Microsoft Visual Studio 2010 版本 10.0.30319.1 RTMRel
- Microsoft .NET Framework 第 4 版
测试环境:
- 表面
- 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>
推荐答案
我们再次检查了一台同样运行 Windows 8 的新机器并且错误消失了,经过一些检查我们确定新机器有一些针对 Windows 8 的新更新安装.我们去检查 Surface 上的更新,在应用所有更新后,错误似乎消失了.
We checked again on a new Machine also running Windows 8 and the error was gone, after some checks we determined that the new Machine had some new Updates for Windows 8 installed. We went to check for Updates on the Surface and after applying all Updates the Error seems to be gone.
无需任何重新编译或进一步设置,只需应用最新的 Win 8 更新即可修复错误.
现在滚动很流畅.相同的可执行文件没有变化,所以我想这毕竟是运行时库中的一些错误.
Scrolling is smooth now. Same executable no changes, so i guess it was some bug in the runtime libs after all.
这篇关于WPF WebBrowser 控件 - 位置:固定元素在滚动时跳转(Windows 8)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!