WPF 解决内置谷歌浏览器(Cef.ChromiumWebBrowser)在触摸屏无法进行滚动的问题

  最近在WPF的项目中,需要在控件中嵌套可以浏览特定网页的内容,所以使用了 Cef.ChromiumWebBrowser来解决问题。在执行项目的过程中,主要碰到的问题有:

  1.1 当把项目拷贝到其他可触摸使用的显示器上面时,会导致无法对界面进行滚动,只能通过滚动界面上的滚动条对界面进行滚动。

2.解决方法:

  搜索了大量的资料,解决此问题目前有以下两种解决方案:

  2.1 设置触摸屏相应的触摸事件,通过触摸事件改变的坐标的偏移量,再对界面执行相应偏移量的滚动。

      使用此方法,会导致当你在界面滑动的时候,会将当前界面的部分内容更改为选中状态,暂时没有找到可去除选中内容的方法,故采用另一种方法实现。

  2.2 在界面添加”向下滚动“以及向上滚动两个按钮,当点击”向下滚动“按钮的时候,当前界面向下滚动指定的偏移量,偏移量可自行设置,我这里设置的偏移量为 100,实现界面进行滚动的方式也很简单,只需要在当前界面异步调用自定义的脚本语言即可。如下所示(表示界面向下滚动100的偏移量):

    ChromiumWebBrowser.GetBrowser().MainFrame.ExecuteJavaScriptAsync("window.scrollBy(0,100);");

3.感悟:

  因为最近在做此类型相关的内容,也是找了很久的资料,才确定最终的解决方法,在网上也没有统一的解决方案,所以写了相应的内容,希望下一个和我一样的人能够早些解决此类问题,哈哈。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpffzd.html