首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Electron 无边框窗口开启全局拖拽

背景 最近有个需求,Electron 打开的窗口要实现拖拽功能,大概看了一眼 BrowserWindow 的 API 却只找到了一个 move 事件,这个事件默认是针对有边框窗口的,也即 frame:...本来打算直接使用 drag API 来写,偶然翻到了以下 API:无边框窗口 其中提到了可拖拽区的概念,即可以将一个矩形区域设置成可拖拽区域,具体文档如下: 文档原文 默认情况下, 无边框窗口是不可拖拽的...我们的应用本身就是一个无边框窗口,假如想要整个窗口内容都可以拖拽,就需要设置 body 为 -webkit-app-region: drag,同时将里面的所有需要点击(包括表单元素)和需要滚动的元素设置为...由于笔者的应用为 Vue.js + Electron 有以下想法有时间验证下: 是否可以拦截 v-on 的 click 事件的注册,拦截到后将对应的元素统一添加 no-drag 样式 编写自定义指令,扩展...参考文档 Electron BrowserWindow Electron 无边框窗口

2.5K10
您找到你想要的搜索结果了吗?
是的
没有找到

Fabric.js 限制边框宽度缩放

本文简介 使用 fabric.js 在某些情况下你可能需要固定元素边框的宽度,仔细看文档你会发现 fabric.js 已经为我们提供了这个功能。本文简单介绍一下这个功能。...实现方法 先揭晓答案,将元素的 strokeUniform 属性设置为 true 后,元素在缩放后,边框会恢复成最初设置的大小。...}) // 省略部分元素 canvas.add(rect) 在本例中,我将几何元素的边框宽度设置成10,在用鼠标拖放几何元素后,元素的边框宽度也会恢复成10...strokeUniform 的默认值是 false,如果不将 strokeUniform 设置为 true,边框就会随着几何元素的缩放而缩放。...fill、stroke、strokeWidth 等属性如果忘了的话可以查看 《Fabric.js从入门到 _ _ _ _ _ _》 复习一下。

7.3K20

当无边框窗口被子窗口遮挡导致难以调节窗口大小时,可通过处理 NCHITTEST 消息重新支持调节窗口大小

做无边框窗口之后,我们有方法可以让窗口的标题栏区域和边缘调大小的区域继续正常工作,直到——这个窗口上面覆盖了其他的子窗口。这个子窗口会吃掉消息导致父窗口的边缘无法再继续处理这些消息。...---- 子窗口遮挡了父窗口 看一下下面的动画,这个窗口的下半部分放了一个子窗口。 然后尝试在边缘调节窗口尺寸,会发现被子窗口覆盖的部分是无法完成窗口大小调节的。...究其原因,是子窗口处理掉了与调窗口大小相关的消息,导致父窗口完全不知道应该如何处理这个时候的操作。...HTTRANSPARENT,这会让整个子窗口区域的消息都不由子窗口处理。...如果你一定要在父窗口非同一个线程时返回 HTTRANSPARENT 那么你的整个窗口(顶层窗口和子窗口)将无法再操作!

25220

js刷LeetCode拿offer之滑动窗口

滑动窗口算法具体的表现形式为:左右指针始终维护一个满足条件的窗口值,右指针负责向前遍历,当窗口值不满足条件时,将左指针指向的元素移出窗口,同时向前移动左指针。  ...s1 字符串长度的窗口,并且窗口中的字符以及相应的数量与 s1 相同。...这道题很明显符合滑动窗口算法的特征:维护一个至多有两种水果的窗口。  ...最后,在窗口移动的过程中,计算相应的水果总量即可。图片四、3. 重复字符的最长子串给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。参考视频:传送门  这道题目与上一道《904....本题利用滑动窗口算法的难点在于如何确定当前窗口中的有效“山脉”形态:窗口移动的过程中,需要采用两个变量来记录当前窗口中包含的序列的单调性;窗口移动过程中遇到递增序列时,如果此时窗口中已经包含递减序列,那么需要向前移动左指针

3.2K30

LeetCode 03重复字符的最长子串(滑动窗口)

示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为重复字符的最长子串是 "abc",所以其长度为 3。...示例 2: 输入: "bbbbb" 输出: 1 解释: 因为重复字符的最长子串是 "b",所以其长度为 1。...示例 3: 输入: "pwwkew" 输出: 3 解释: 因为重复字符的最长子串是 "wke",所以其长度为 3。 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。...本题选择的思路是滑动窗口,滑动窗口,就是用一个区间从左往右,右侧先进行试探,找到区间重复最大值,当有重复时左侧再往右侧移动一直到没重复,然后重复进行。在整个过程中找到最大的那个空间返回即可。...直到移动到right位置相同字母的右侧说明当前窗口没有重复序列了,继续循环执行到结束。 ?

64640

【FFmpeg】ffplay 命令行参数 ③ ( 关闭图形化显示窗口 -nodisp 参数 | 无边框窗口 -noborder 参数 | 设置起始音量 -volume 参数 )

; 关闭图形化显示窗口 与 禁用视频 对比 , 执行 ffplay -vn yuanshen.mp4 命令 , 禁用视频 , 还是会弹出一个窗口 , 窗口中显示着 音频 的 频谱 ; 2、无边框窗口...-noborder 参数 ffplay 命令行的 -noborder 参数 可以设置 在 播放视频 时显示 无边框窗口 ; 使用 -noborder 参数后 , 以无边框模式打开视频窗口 , 窗口的 标题栏...和 边框 将被隐藏 , 从而提供更大的 视频显示区域 ; 通过设置 -noborder 参数 , 可以 隐藏边框 , 需要全屏播放视频 或 需要视频占据尽可能多屏幕空间 ; 获得更纯净的视频观看体验..., 没有额外的界面元素干扰 ; 开启 无边框窗口 后 , 没有 标题栏 可用 , 需要通过 键盘 操作窗口 ; 执行 ffplay -x 800 -y 600 -noborder yuanshen.mp4...命令 , 使用 无边框模式 播放 视频 , 效果如下 , 无法使用鼠标拖动 ; 执行 ffplay -x 800 -y 600 yuanshen.mp4 命令 , 播放视频 默认 是 有边框 的 ,

24010
领券