CefSharp如何进行页面的缩放(Ctrl+滚轮)

问题:CefSharp如何进行页面的缩放

摘要:由于CefSharp并没有提供鼠标滚轮事件。只有一个KeyboardHandler事件,因此只能接收到键盘事件。

环境:CefShap、Wpf

了解CefSharp是否有现成方法调用

通过这个不难看出有一个KeyboardHandler可以用来接收键盘的Ctrl按钮。因此通过这个我们可以说就相当于解决了问题的一半了,就是可以通过这个来接收按键。那么鼠标的滚轮又如何接收到呢?

CefSharp不能接收到鼠标滚轮 - 困境

相信大伙一开始肯定会想着ChromiumWebBrowser里自带的MouseWheel事件。本人一开始也是这样想的,后来发现程序在鼠标滚动的时候不会进入这个事件里面,虽然我也不知道这事什么原理,但很明显这个方法可能已经行不通了。因此我开始了我的面向百度编程历程,但我百度的时候,第一页第一篇就是说CefSharp的这个缩放,但实际上我进去浏览的时候发现,他说说的可能并不是CefSharp,因为我这CefSharp里根本没有所谓的鼠标滚轮事件,如下图所示,因此我觉得这篇文章对我的价值基本上是没有任何用处。往后翻了几页依旧没有任何收获,至此我陷入了困境。

CefSharp不能接收到鼠标滚轮 - 思路

这时的我开始想一些稀奇古怪的招了,比如什么Js注册页面缩放啊、企图在CefSharp上层铺控件来接收滚轮事件啊等等的。但js注册页面缩放经过尝试也未能达到要求。但第二个思路可以说是为当前的困境提供了一个很好的思路。但是脑袋瓜子想着就是既然页面不能接收我的滚轮事件,我为何不能在上层铺一层控件呢!这个时候思路一来立马给我精神的。说干就干。一开始的时候如下图所示。

CefSharp不能接收到鼠标滚轮 - 再临困境

当我将程序运行起来的时候发现我一开始放置用来测试的按钮并没有浮现在页面的上方。如下图所示,我再一次懵逼,完全不知所措。因为我也不知道CefSharp是什么原理,为什么控件不能浮现在页面的上方。至此,我又一次陷入了困境,并且对我之前的想法已经不抱任何希望。又开始在电脑前盲目的摸鱼起来了T T。

CefSharp不能接收到鼠标滚轮 - 奇迹再现

有一句话说得可真不错叫“无心插柳柳成荫”。这个“奇迹”可以说是无意间给了我再一次尝试解决的机会。由于前面陷入了困境,又苦于无法解决。在等待群友帮助的我又开始了开一些WPF的基础知识的查看学习。也正是这一举动让我无意间又发现了解决控件不能浮在CefSharp上方的问题。那时我正在看菜单这个东西,正巧看到了Popup自定义菜单,也正是这个控件让我对之前那个问题有了尝试的想法。如下图所示。我弄了一个这个Popup。但我运行起来的时候,惊喜的发现他居然浮现在页面的上方。也就是说我可以通过这个控件来让他浮现在网页的上方,这样一来滚轮事件就可以接收到了。这一发现让我完全可以解决了CefSharp不能就收滚轮的问题。至此一来按键事件可以通过KeyboardHandler来获取,滚轮可以通过Popup来获取。瞬间柳暗花明啊。O(∩_∩)O哈哈~

CefSharp Ctrl+鼠标滚轮进行页面缩放的处理

通过之前可以看到问题已经有了解决的方案了,接下来就是将他们结合起来了。话不多说。直接上代码图吧。O(∩_∩)O哈哈~

简要介绍下上面几张图吧,第一张就是Popup,主要点就在于那个透明度是0.01这样子当按下Ctrl的时候不会因为Popup的显现而遮挡住了页面。第二张是滚轮事件页面缩放代码,这个用了CefSharp自带的方法。第三张是KeyboardHandler注册Ctrl按下和按键松开时是发送通知来告知页面变化。第四章就是用来接收KeyboardHandler发送的通知,并改变Popup的显示和隐藏。至此,这个CefSharp滚轮缩放就解决啦。感觉是很简单,主要是有没有思路来解决这个问题。

最后

到此这篇关于CefSharp如何进行页面的缩放(Ctrl+滚轮)的文章就介绍到这了,更多相关CefSharp 页面缩放内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • CefSharp v62修改方法(支持.net4.0)

    吐槽一下,博客园久了没有上,账号没了,重新申请一个. cesharp v62版本,内核采用最新的Cef 62,支持最新的Grid布局. 由于官方的cefsharp 采用.net4.5.2开发.怎么办怎么办.我只能用.net4.0.没办法啊,自己拿源码修改兼容呗. 仔细分析源码发现: 1.net4.5.2 引入了 async/await 关键字. 这个其实国外大神已经有源码放出来了,我们把代码直接引入cefsharp 这个工程. 就可以直接在4.0里使用 async/await; 2.net4.5

  • 使用C# CefSharp Python采集某网站简历并且自动发送邀请短信的方法

    前言 以往爬虫没怎么研究过,最近有个需求,要从某网站采集敏感信息,稍稍考虑了一下,决定利用C# Winform和Python一起来解决这个事件. 整个解决方案不复杂:C#编写WinForm窗体,进行数据分析和采集, Python本来不想用的,一下子没找到C#下Woff字体转Xml的方案,而网上Python的则有很多,所以就加了一个Python项目,虽然就1个脚本. 一.几个步骤: 首先要模拟登录,登录完了进入简历采集,然后模拟下载,下载完了以后就可以看到求职者的电话了. 这个电话号码是使用动态生

  • CefSharp如何进行页面的缩放(Ctrl+滚轮)

    问题:CefSharp如何进行页面的缩放 摘要:由于CefSharp并没有提供鼠标滚轮事件.只有一个KeyboardHandler事件,因此只能接收到键盘事件. 环境:CefShap.Wpf 了解CefSharp是否有现成方法调用 通过这个不难看出有一个KeyboardHandler可以用来接收键盘的Ctrl按钮.因此通过这个我们可以说就相当于解决了问题的一半了,就是可以通过这个来接收按键.那么鼠标的滚轮又如何接收到呢? CefSharp不能接收到鼠标滚轮 - 困境 相信大伙一开始肯定会想着Ch

  • IDEA/WebStorm/Pycharm鼠标滚轮ctrl+滚轮-调节缩放字体大小

    先看下IDEA/WebStorm/Pycharm鼠标滚轮ctrl+滚轮-调节字体大小,文章底部给大家提到了缩放字体大小的设置方法,耐心看完此文哈~ 由于Idea/webstorm/pycharm都是一家公司的,因此设置的操作也一样: 首先设置settings: 找到editor编辑器的general 通用: 选项如下,进行打勾 并且点击右下角的apply应用,否则不会生效: 这样就可以进行正常的习惯CTRL+滚轮 调节字体的font size 了 下面接着看下IDEA Pycharm  Webs

  • javascript检测页面是否缩放的小例子

    复制代码 代码如下: /* * zoomCheck */jQuery(function($){  var dCheck = $("#zoomCheck");  if(dCheck.size() != 0){    return;  }  dCheck = $("<span></span>").attr('id',"zoomCheck").css({    position :'fixed',    left : '5px'

  • 在Vue项目中,防止页面被缩放和放大示例

    现在vue的脚手架生成项目之后我们会发现index.html页面中. 在head标签中,我们会看到meta标签中有一条显示是 <meta name="viewport" content="width=device-width,initial-scale=1.0,user-scalable=0"> 但是我们发现这条语句中只是让user-scalable=0,这是不让用户进行缩放. 可以页面会在两个手指进行放大!!! 可以页面会在两个手指进行放大!!! 可以

  • pycharm中如何自定义设置通过“ctrl+滚轮”进行放大和缩小实现方法

    我相信绝大多数小伙伴在自学python时,运用pycharm进行编写程序时发现字体太小不方便进行编写,通常像codeblocks这样的编程软件可以通过"ctrl+滚轮"进行放大和缩小.而今天要解释的pycharm通过这种方式却很难实现.显然可以通过设置来固定字体大小,但是每次都要进行设置,比较麻烦,下面介绍一下如何自定义设置通过"ctrl+滚轮"进行放大和缩小. 1.打开pycharm中左上角找到File->setting->Keymap->搜索框

  • JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法

    本文实例讲述了JS实现禁止用户使用Ctrl+鼠标滚轮缩放网页的方法.分享给大家供大家参考,具体如下: 为什么会有人会使用ctrl+鼠标滚轮缩放网页?坚决禁止! <html> <head> <title>测试</title> <script language="javascript"> var scrollFunc=function(e){ e=e || window.event; if(e.wheelDelta &&a

  • 倾力总结40条常见的移动端Web页面问题解决方案

    1.安卓浏览器看背景图片,有些设备会模糊. 用同等比例的图片在PC机上很清楚,但是手机上很模糊,原因是什么呢? 经过研究,是devicePixelRatio作怪,因为手机分辨率太小,如果按照分辨率来显示网页,这样字会非常小,所以苹果当初就把iPhone 4的960640分辨率,在网页里只显示了480320,这样devicePixelRatio=2.现在android比较乱,有1.5的,有2的也有3的. 想让图片在手机里显示更为清晰,必须使用2x的背景图来代替img标签(一般情况都是用2倍).例如

  • swing jtextArea滚动条和文字缩放效果

    本文实例为大家分享了swing jtextArea滚动条和文字缩放的具体代码,供大家参考,具体内容如下 当加了滚动条的jtextArea添加滚动事件比如缩放ctrl+wheel时,添加的滚动事件和滚动缩放事件会重合,如何让这两个事件同时发生而不会相互干扰呢,也就是滚动条放大缩小时文本不会发生上下滚动. import javax.swing.*; import java.awt.*; import java.awt.event.MouseAdapter; import java.awt.event

  • 原生JS实现图片懒加载之页面性能优化

    在项目开发中,我们往往会遇到一个页面需要加载很多图片的情况.我们可以一次性加载全部的图片,但是考虑到用户有可能只浏览部分图片.所以我们需要对图片加载进行优化,只加载浏览器窗口内的图片,当用户滚动时,再加载更多的图片.这种加载图片的方式叫做图片懒加载,又叫做按需加载或图片的延时加载.这样做的好处是:1.可以加快页面首屏渲染的速度:2.节约用户的流量. 一.实现思路 1.图片img标签自定义一个属性data-src来存放真实的地址. 2.当滚动页面时,检查所有的img标签,判断是否出现在事业中,如果

  • 用javascript制作qq注册动态页面

    目录 一.前言 1. 基础布局 2. 自动切换图片 3. 添加内容 4. 自动缩放,控件的显示和隐藏 5.响应用户输入操作 一.前言 我们来看如何用html写一个注册页面并使用js加载用户输入响应.先上图,没图都是耍流氓,附上本次案例链接Fdog注册案例. 1. 基础布局 首先分析布局,图中的布局分为左右两大板块,右边的板块又包括三大板块: 我们先来一个水平布局,并设置左边的宽为25%,右边的宽为75% <div class="fdogback"></div>

随机推荐