且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

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

更新时间:2023-12-06 15:35:22

我们在新机同时运行Windows 8的检查了一遍,错误不见了,一些检查后,我们确定了新的机器有一些新的更新为Windows 8安装。我们去检查的表面更新和应用所有更新的错误之后似乎消失了。

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

滚动现在是平滑的。同一个可执行文件没有改变,所以我想这是在运行时库的一些bug毕竟。

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.

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?

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?

The Development Environment:

  • Windows 7
  • Microsoft Visual Studio 2010 Version 10.0.30319.1 RTMRel
  • Microsoft .NET Framework Version 4

The Test Environment:

  • Surface
  • Windows 8
  • Microsoft .NET Framework Version 4.5

Client 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>

Demo Page 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>

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.

Without any recompilation or further settings just by applying the latest Win 8 Updates the error is fixed.

Scrolling is smooth now. Same executable no changes, so i guess it was some bug in the runtime libs after all.