如何使wpf webview像webbrowser一样滚动?

pob*_*oby 5 c# wpf webbrowser-control wpf-controls webview

我正在尝试Microsoft.Toolkit.Wpf.UI.Controls.WebView在wpf桌面应用程序中使用控件。它似乎比Web浏览器控件使用的资源少得多,并且基于边缘而更新得多。但是,与webbrowser控件不同,除非选中,否则它将不会滚动。即,当鼠标悬停在Web浏览器上时,无需先选择就可以上下滚动,但是如果Webview不是当前选定的控件,则Webview将忽略鼠标滚轮。

使用VS2019,以下代码演示了该问题。

<Window x:Class="test0.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:WPF="clr-namespace:Microsoft.Toolkit.Wpf.UI.Controls;assembly=Microsoft.Toolkit.Wpf.UI.Controls.WebView"
        Title="MainWindow" Height="600" Width="1024">

    <Grid>
        <StackPanel>
            <Button Content="hello world" Height="100" />
            <WPF:WebView Source="https://bing.com" Height="250" />
            <WebBrowser Source="https://bing.com" Height="250" />
        </StackPanel>
     </Grid>

</Window>
Run Code Online (Sandbox Code Playgroud)

在运行时,当鼠标指针悬停时,两个浏览器控件都将滚动。单击按钮(从两个浏览器中移出焦点)后,只有Web浏览器控件在鼠标悬停时滚动。

是否有解决此问题的解决方法?

使用:.NET Framework 4.7.2和Microsoft.Toolkit.Wpf.UI.Controls.WebView 5.1.1

pob*_*oby 2

问题解决了!但与VS或框架版本等无关。在某些情况下,触摸板驱动程序似乎与webview控件不能很好地配合。更不用说我使用的是触摸板和真正的鼠标,这是我的疏忽,但我从来没有想过会有区别。直到我插上鼠标就没有问题了。

无论如何,解决方案是下载并安装精密触摸板驱动程序,如下所示:

https://www.windowscentral.com/how-enable- precision-touchpad-drivers

这解决了问题......直到Windows决定将驱动程序“更新”回旧的驱动程序。阻止 Windows 执行此操作的唯一方法是禁用“自动驱动程序下载”,如下所示:

https://www.laptopmag.com/articles/disable-automatic-driver-downloads-on-windows-10

我希望我提到过我正在使用触摸板,因为我怀疑对于那些不使用精密触摸板驱动程序的人来说,这个问题可能更容易重现。