c#-WPF WebBrowser控件-position:fixed元素在滚动时跳转(Windows 8)

我们使用WPF WebBrowser控件来显示嵌入式页面.在Windows 8上,我们观察到具有css位置的元素的奇怪跳跃行为:滚动时已固定.相同的页面在Windows 8的IE10(以及FF,Chrome)和Windows 7的WPF WebBrowser控件中都可以正常运...

我们使用WPF WebBrowser控件来显示嵌入式页面.在Windows 8上,我们观察到具有css位置的元素的奇怪跳跃行为:滚动时已固定.

相同的页面在Windows 8的IE10(以及FF,Chrome)和Windows 7的WPF WebBrowser控件中都可以正常运行.

有没有人以前见过这种行为,并且知道跳跃动作的解决方法?

与开发机上的.Net版本4相比,在测试机(带有Win 8的Surface)上使用的.NET 4.5版本是否可能是问题?

开发环境:

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

解决方法:

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

实现功能控件后,有必要验证<!DOCTYPE html>被WebBrowser观察到,并且页面实际上以HTML5标准模式here’s how呈现.

[更新]当FEATURE_BROWSER_EMULATION设置为9000并且META标签固定为< meta http-equiv =“ X-UA-Compatible” content =“ IE = 9” />时,OP的示例页面实际上可以正确呈现. (content =“ IE9”是not a valid value).

本文标题为:c#-WPF WebBrowser控件-position:fixed元素在滚动时跳转(Windows 8)

基础教程推荐