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

dotnet X11 设置窗口鼠标触摸命中穿透

本文记录如何在 X11 应用里面,使用 XShapeCombineRegion 方法配置一个 X11 窗口支持和 Win32 窗口一样的命中测试穿透功能,即对应 Win32 的 WS_EX_TRANSPARENT...的鼠标、触摸等的点击等动作的穿透功能,可以实现在窗口中挖空一块范围直接穿透到后面的窗口X11 窗口中,想要实现让窗口不可命中,即所有的鼠标、触摸等的事件穿透到后面的窗口上,可以采用 libXext.so...childWindowHandle 是一个 X11 窗口 var region = XFixesCreateRegion(display, 0, 0); XFixesSetWindowShapeRegion...,其中一个窗口调用了 XShapeCombineRegion 方法,运行程序,将设置了的 XShapeCombineRegion 的窗口激活作为前台窗口,点击此窗口的内容,可以看到点击穿透到后面的窗口...- V2EX 2021-08-21窗口管理器杂谈 - 简书 更多 X11 开发请参阅 博客导航 关于在 Windows 系统下的 WPF 窗口点击穿透,请参阅 WPF 制作支持点击穿透的高性能的透明背景异形窗口

11110

dotnet 后台线程设置 X11 窗口最小化

本文将告诉大家如何在 dotnet 里面的后台线程设置 X11 窗口的最小化 核心设置 X11 窗口最小化的方法是 XIconifyWindow 方法,核心问题是在后台线程需要自己使用 XOpenDisplay...; 在 Task.Run 里面,不能使用外面 display 对象,否则在 XIconifyWindow 方法将不会返回 如果没有调用 XCloseDisplay 则 XIconifyWindow 的设置是无效的...但实际测试发现通过如下代码方式,将需要在一定的时机下才能生效,比如鼠标在窗口内晃动,或者重新激活窗口才能生效 _ = Task.Run(async () => { while (true)...Gravity.NorthWestGravity, win_gravity = Gravity.NorthWestGravity, //override_redirect = true, // 设置窗口的...override_redirect属性为True,以避免窗口管理器的干预 colormap = XCreateColormap(display, rootWindow, visual, 0),

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

dotnet C# 设置 X11 应用窗口背景透明

本文将告诉大家如何在 X11 里面设置窗口透明 不同于在 WPF 里面可以使用 AllowsTransparency 简单方便的设置透明,在 X11 里面设置窗口透明的方法比较绕。...PropertyGroup> 以上的 csproj 项目文件代码里和空控制台核心不同在于使用 AllowUnsafeBlocks 开启不安全代码 打开 Program.cs 文件,开始编写 X11...透明窗口示例应用代码 按照 X11 的基础使用方法,先获取 Display 和 Screen 和 RootWindow 对象/指针,代码如下 var display = XOpenDisplay(0)...还请自行修复一下 比如安装 compiz 窗口合成管理器,安装和运行的命令行如下 sudo apt-get install compiz compiz 比如在 UOS 里,可在系统设置->个性化->通用里...,开启窗口特效 如果开启之后依然没有透明窗口背景效果,则请调查一下是否 UOS 里默认的 KWin 窗口合成管理器损坏或被替换为其他的窗口合成管理器,查看当前的窗口合成管理器可使用以下命令 sudo apt-get

11010

dotnet 设置 X11 建立窗口之间的父子关系

X11 里面有和 Win32 类似的窗口之间的关系机制,如 Owner-Owned 关系,以及 Parent-Child 关系。...具体来说,如果指定的窗口已经被映射到屏幕上,XReparentWindow 会自动执行 UnmapWindow 请求,将其从当前层次结构中移除,并将其插入到指定父窗口的子级中。...这个窗口会在兄弟窗口中的堆叠顺序中置于顶部。¹² 如果原始窗口已经被映射,XReparentWindow 还会导致 X 服务器生成一个 ReparentNotify 事件。...在此事件中,override_redirect 成员被设置窗口的相应属性。通常情况下,窗口管理器客户端应该忽略此窗口,如果此成员设置为 True。...最后,如果原始窗口已经被映射,X 服务器会自动对其执行 MapWindow 请求。对于原先被遮挡的窗口,X 服务器会执行正常的曝光处理。

13310

dotnet C# 创建 X11 应用时设置窗口背景颜色

本文将告诉大家如何在 X11 里面创建一个窗口时,设置窗口的背景颜色 在 dotnet C# 设置 X11 应用窗口背景透明 的基础上,可以通过创建 XColor 结构体,将 XColor 赋值给到 XSetWindowAttributes...的 background_pixel 进行设置窗口的初始化背景颜色 核心实现如下 先创建 XColor 结构体,代码如下 XColor color = new XColor() { red =...这是因为在X11里面支持多个不同的格式的颜色,需要经过这一步骤才能获取具体设备相关的颜色。...Gravity.NorthWestGravity, win_gravity = Gravity.NorthWestGravity, //override_redirect = true, // 设置窗口的...Gravity.NorthWestGravity, win_gravity = Gravity.NorthWestGravity, //override_redirect = true, // 设置窗口

7610

xsetroot命令窗口参数设置实用程序

xsetroot命令允许您在运行X的工作站显示器上定制背景(窗口的外观。通常,您可以尝试使用xsetroot命令直到找到所需的个性化外观,然后将产生该外观的xsetroot命令放入您的X启动文件。...如果未指定任何选项,或者如果指定了-def标志,则将窗口重置为其默认状态。可以将-def标志与其他标志一起指定,并且只有未指定的特征才被重置为默认状态。...语法格式:xsetroot [参数] 常用参数: -gray 将整个背景设为灰色 -def 将未指定的属性重置为默认值 -bg  使用颜色作为背景色 -solid  这会将窗口的背景设置为指定的颜色...参考实例 将整个背景设为灰色: [root@linux ~]# xsetroot -gray 将未指定的属性重置为默认值: [root@linux ~]# xsetroot -def 使用-bg设置自定义背景色

43230

学习 Avalonia 框架笔记 设置 X11 窗口从最小化状态还原为正常状态

本文记录在 dotnet 里面如何设置 X11 窗口从最小化状态还原为正常状态 核心设置方法如下 /// /// 代码从 Avalonia 抄的 https://github.com...EventMask.SubstructureNotifyMask)), ref xev); } } 以上代码没有定义的函数和局部变量等,可以在本文末尾找到完全的代码 为了测试其行为,我额外编写了一些 C# 代码,不断设置让...X11 窗口最小化和还原到正常状态 async Task InvokeAsync(Action action) { var taskCompletionSource = new TaskCompletionSource...pull origin 0a1cb0ac238bd809c17059cfa57bcb9528b79c72 获取代码之后,进入 DikalehebeekaJaqunicobo 文件夹,即可获取到源代码 设置...X11 窗口最小化的方法请看 dotnet 后台线程设置 X11 窗口最小化

15810

【OpenGL】八、初始化 OpenGL 渲染环境 ( 导入 OpenGL 头文件 | 链接 OpenGL 库 | 将窗口设置为 OpenGL 窗口 | 设置像素格式描述符 | 渲染绘制 ) ★

文章目录 一、导入 OpenGL 的两个头文件 二、链接 OpenGL 库 三、将 Windows 桌面窗口改成 OpenGL 窗口 四、获取窗口设备 五、设置像素格式描述符 六、设置像素格式 七、创建并设置...(dc, &pfd); // 设置像素格式 SetPixelFormat(dc, pixelFormat, &pfd); 六、设置像素格式 ---- 先选择像素格式 , 该操作需要调用 ChoosePixelFormat...方法 , 让系统选择像素格式 , 如果返回 -1 , 说明选择像素格式失败 , 一般情况下该选择是成功的 ; 选择完像素格式之后 , 需要调用 SetPixelFormat 方法设置像素格式 ;...// 设置像素格式 SetPixelFormat(dc, pixelFormat, &pfd); 七、创建并设置 OpenGL 上下文对象 ---- 根据窗口设备创建 OpenGL 上下文对象 ,...注意该操作必须在设置像素格式后进行操作 , 然后设置该 OpenGL 上下文对象 ; 其中 dc 是 窗口设备 , HDC dc = GetDC(hWnd); // 创建 OpenGL 上下文对象

1.5K00

dotnet 理解 X11 的 24 位或 32 位色深窗口

本文记录在 X11 里面的窗口与颜色的位色深关系 本文属于学习 CPF 框架博客,感谢小红帽的 CPF 框架。...简单理解就是 24 色是不带透明的,而 32 色是带透明的 在 X11 里面,简单的创建窗口的代码大概如下图所示(看不见图片的话,开浏览器的不安全内容兼容,我的图片是 http 的不是 https 的)...其实就是 RootWindow 窗口X11 里面,所有的窗口都是 RootWindow 窗口的子窗口 尝试使用以下代码来获取 RootWindow 的色深 using static CPF.Linux.XLib...进行创建,这将会导致无法设置窗口背景透明。...和 ZPixmap 三个不同的格式,其中 ZPixmap 是一个像素接着一个像素的排序过去的,和 DirectX 或 OpenGL 等的像素格式能够非常好的贴近。

6310

『PyQt5-基础篇』| 01 简单的基础了解

1.1 支持的平台MS/Windows - 95、98、NT4.0、ME、2000、XP 、 Vista、Win7、win8、win2008、win10Unix/X11 -Linux、SunSolaris...、HP-UX、CompaqTru64 UNIX、IBMAIX、SGI IRIX、FreeBSD、BSD/OS和其它很多X11平台Macintosh -Mac OS XEmbedded - 有帧缓冲(framebuffer...以下是主要的类和说明:类说明QObject 顶部类(Top Class),是所有PyQt对象的基类QPaintDevice 所有可绘制的对象的基类QApplication管理图形用户界面应用程序的控制流和主要设置...QWidget用户界面对象的基类QFrame有框架的窗口控件的基类QMainWindow有菜单栏、锚接窗口(如工具栏)和状态栏的主应用程序窗口QDialog最普通的顶级窗口 2.3 重要类的继承关系PyQt...常用控件控件说明 QLabel显示文本或图像QLineEdit 一个单页面的单行文本编辑器 QTextEdit一个单页面的多行文本编辑器QPushButton命令按钮 QRadioButton单选按钮和一个文本或像素映射标签

34660

学习 CPF 框架笔记 了解 X11 绘制图片方法

在 学习 CPF 框架笔记 了解 X11 窗口和消息基础知识 的基础上,假定当前已创建完成了窗口,准备好了事件监听 在 X11 执行绘制图片需要在 Expose 曝光之后进行,可在 XSelectInput...而不是读取本机的图片文件,因为读取图片文件还有一个解码的过程,解码过程和 X11 没什么关系,为了让本文示例更贴近 X11 的绘制图片,本文这里就选择自己创建图片像素 byte 数组,填充随意的数据假装是图片...根据 dotnet 的 GC 特点,对象在内存里面的指针是可变的,这将会导致如果能够直接取出 byte 数组的对象指针,且将对象指针传递给 X11 层,将可能在某次 GC 之后,图片像素 byte 数组所在内存空间变更...方便 CLR 层进行垃圾回收压缩内存空间,防止内存碎片化 pinnedArray.Free(); 这里需要小心一点是,需要在 X11 相关业务不再使用此图片像素数据时,才能调用 Free 方法。...否则将会导致 X11 层存放一个错误的指针地址,导致内存损坏 获取到像素数组的指针,即可构建 XImage 结构体,代码如下 var img = new XImage(); int bitsPerPixel

12210

X 随笔

“Z序”实际是相对屏幕坐标而言的,假设一过屏幕原点垂直于屏幕的Z轴,它由外指向屏幕内,窗口在这个Z轴上的值就确定了它的Z序, Z序值大的窗口覆盖了Z序值小的窗口,因此, Z序实际定义了各个窗口在屏幕上的层叠顺序...窗口管理提供了一组工具函数,实现对窗口的创建、关闭、删除等基本操作功能,此外还实现设置、获取窗口属性、移动等控制窗口的功能。...窗口管理器想知道的一些信息,比如在映射视窗时,应用程序发送的一个想改变屏幕布局的请求报文。 X Client对事件的处理过程分为三步:首先,选择每个视窗都需要的事件。然后,将视窗映射到屏幕上。...另一种观点是从严格的OSI七层结构出发,认为X11仅仅能作为一个应用层中的应用服务元素,并将它的服务原语映射到联系控制服务元素以及表示层服务上。...应用层映射观点则代表了将 X系统映射到 OSI模型的战略方向。 9.

1K10

ZYNQ7035 PL Cameralink回环实现

需要两Cameralink线缆;8对差分数据、2对差分时钟; Full模式:需要两Cameralink线缆;12对差分数据、3对差分时钟。...控制口有4信号,用于图像采集端对相机的IO控制;串口用于图像采集端对相机参数的配置。...1.1.3.3 通道传输数据与图像数据映射关系 1路差分数据通道上,一个Clock像素时钟周期传输7bits串行数据,那么4路差分数据通道总共就是4*7bits=28bits,我们称这28bits数据为并行数据...Cameralink Base模式下,这28bits数据与图像行/场同步/数据有效标记、图像数据的映射关系如下图所示: 图片 TX/RX24映射为行同步标记LVAL,TX/RX25映射为场同步标记FVAL...1.1.5.4 退出实验 Vivado调试界面Hardware Manager窗口,右键单击localhost(1),在弹出的菜单中点击Close Server,断开ZYNQ JTAG仿真器与板卡的连接

77830

R语言基础绘图

对于多维数据,一般采用多种元素来展现,例如,同一个点,可以通过点的大小对应(映射)数据大小,点的颜色,形状对应分类数据。...example(boxplot) demo (graphics) demo(persp) 1.4 绘图设备 默认 R 绘图展示在绘图窗口中,可以直接显示,可以通过设置修改默认绘图设备。...R 支持的常用的绘图设备有以下几种: R 绘图设备 分类 R绘图设备 含义描述 屏幕显示 X11 X 窗口/图形界面窗口 文件设备 postscript ps 格式的矢量图文件 pdf pdf 格式的矢量图文件...png png 格式文件 jpeg jpg 格式的位图文件 在各种 R 的绘图设备中,最常用的为 X11 和 pdf,X11 在绘图调试过程中非常方便,不用每次打开绘图文件,属于边绘图边查看的方式...,那么 R 将打开一个绘图窗口来展示这个图形,默认打开的就是 X11 窗口,也可以使用命令 x11() 来直接打开一个绘图窗口

1.3K20

WPF 获取元素(Visual)相对于屏幕设备的缩放比例,可用于清晰显示图片

我们知道,在 WPF 中的坐标单位不是屏幕像素单位,所以如果需要知道某个控件的像素尺寸,以便做一些与屏幕像素尺寸相关的操作,就需要经过一些计算(例如得到屏幕的 DPI)。...如下图,我画了一个屏幕,屏幕里面有一个 WPF 窗口,WPF 窗口里面有一个或者多个 ViewBox 或者设置了 RenderTransform 这样的缩放的控件,一层层嵌套下有我们的最终控件。...于是我们需要找到 WPF 窗口中的元素,可以通过不断查找可视化树的父级来找到。...1 2 3 // VisualRoot 方法用于查找 visual 当前的可视化树的,如果 visual 已经显示,则会是窗口中的元素。.../// 通常,如果这个 显示在窗口中,则为 ; /// 不过,如果此 <see cref="Visual

51940

OpenGL API 简介

库前缀有 gl、glu、aux、glut、wgl、glx、agl 等等,分别表示该函数属于openGL 的哪个开发库,从函数名后面中还可以看出需要多少个参数以及参数的类型...纹理映射函数: 主要有一维纹理函数 glTexImage1D()、二维纹理函数glTexImage2D()、设置纹理参数、纹理环境和纹理坐标的函数glTexParameter*()、glTexEnv*...glDeleteTextures 删除命名的纹理 glDepthFunc 定义用于深度缓冲区对照的数据 glDepthMask 允许或不允许写入深度缓冲区 glDepthRange 定义 z 值从标准的设备坐标映射窗口坐标...gluPickMatrix 定义一个拾取区间 gluProject 将对象坐标映射窗口坐标 gluPwlCurve 描述一个分段线性 NURBS 修剪曲线 gluQuadricCallback...gluTessVertex 定义在一个多边形上的顶点 gluUnProject 将窗口坐标映射为对象坐标

2.2K41
领券