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

学习 Avalonia 框架笔记 如何创建一个全屏置顶的 X11 应用窗口

本文记录我从 Avalonia 框架里面学到如何创建一个全屏置顶的 X11 应用窗口的方法 开始之前,先从 Avalonia 或 CPF 里面拷贝足够的代码,这部分代码可以从本文末尾找到下载方法 设置全屏的核心代码是以下三行...(display, window, mask); var gc = XLib.XCreateGC(display, window, 0, 0); XLib.XMapWindow(display, window...); XLib.XDrawLine(display, window, gc, 0, xDisplayHeight, xDisplayWidth, 0); } } XLib.XUnmapWindow...(display, window); XLib.XDestroyWindow(display, window); 本文代码放在 github 和 gitee 上,可以使用如下命令行拉取代码 先创建一个空文件夹...693a137d9349bc65b5e2ed3a7c5d2480775e621a 获取代码之后,进入 CeaherecelallLemlalnohuce 文件夹,即可获取到源代码 更多 Avalonia 以及 X11

62710

学习 CPF 框架笔记 了解 X11 窗口和消息基础知识

本文记录我学习 CPF 框架的笔记,这是我从 CPF 框架里面学习到的 X11 的窗口和消息基础知识。...本文将告诉大家如何创建一个 X11 简单窗口,支持在这个窗口上用鼠标画出简单的内容 开始之前,先感谢小红帽开源的 CPF 框架,详细请参阅 https://gitee.com/csharpui/CPF...本文将大量参考 CPF 里面的代码,关于对 X11 的简单封装调用的代码,我不会在博客里面写出来,只放在我的示例项目代码里,可以在本文末尾找到所有代码的下载方式 以下是创建一个简单的 X11 窗口的例子...创建窗口需要额外创建前景色和背景色,使用如下代码创建白色和黑色 var white = XWhitePixel(Display, screen); var black =...,但创建完成的窗口还没显示出来。

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

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

    简单理解就是 24 色是不带透明的,而 32 色是带透明的 在 X11 里面,简单的创建窗口的代码大概如下图所示(看不见图片的话,开浏览器的不安全内容兼容,我的图片是 http 的不是 https 的)...此时创建出来的窗口是默认 24 色的 为什么呢?...通过开源的 XLib 的源代码 可以看到 XCreateSimpleWindow 的函数实现代码如下 Window XCreateSimpleWindow( register Display *...其实就是 RootWindow 窗口 在 X11 里面,所有的窗口都是 RootWindow 窗口的子窗口 尝试使用以下代码来获取 RootWindow 的色深 using static CPF.Linux.XLib...那此时无论是 CPF 还是 Avalonia 还是 UNO 都开始顶不住了,如果有这样的需求,那还请到各自的开源仓库提需求 对于旧的 UNO 框架,在创建软渲染的 X11 平台的窗口时,使用的是 XCreateSimpleWindow

    10010

    dotnet X11 调用 XRootWindow 是否耗时

    本文将通过阅读 lib x11 代码告诉大家,调用 XRootWindow 函数是不耗时的,没有成本的 在我阅读 Avalonia 和 CPF 和 UNO 框架的代码的时候,我发现了很多时候都是在需要用到...RootWindow 存放起来,这样可以稍微提升一点性能 在对某个函数调用进行性能测量考虑时,不仅可以使用基准性能测试工具进行测试,还可以通过阅读代码的方式了解实现原理从而了解其性能 通过阅读 lib x11...答案是可以的 开始之前必须说明的是,这样的方式是不安全的,强依赖 xlib 的实现。...XDefaultRootWindow 都只是从 Display 结构体取出字段而已,可以在业务端随意调用,没有成本 本文以上代码放在 github 和 gitee 上,可以使用如下命令行拉取代码 先创建一个空文件夹...github.com/lindexi/lindexi_gd.git git pull origin 7ad18fcc3b99003e0864e54e1ea6e696909b4b3b 获取代码之后,进入 X11

    10710

    X 随笔

    窗口管理提供了一组工具函数,实现对窗口的创建、关闭、删除等基本操作功能,此外还实现设置、获取窗口属性、移动等控制窗口的功能。...这里要注意的是,对窗口进行创建、关闭、等操作时,要相应修改系统的窗口Z序链表以及各个有关窗口的信息。 4....X window X window是由麻省理工学院推出的窗口系统,1984年发行了其最早版本,简称X,旨在建立不依赖于特定硬件系统的图形和文字显示窗口系统的标准。...X 协议 X Window系统网络协议即X11协议定义了在客户和服务器之间传送信息所使用的数据结构即信息格式定义。它是一个基于流处理通信而不是基于过程或核心调用的异步接口。...X11的实现有许多种,其中用C语言实现的函数库Xlib提供了直接访问协议的原语,提供了信息交换的能力。 X.11.3共有120多个请求,且具有可扩充性,描述了客户与服务器进程通信的结构、语法及语义。

    1.1K10

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

    本文记录如何在 X11 应用里面,使用 XShapeCombineRegion 方法配置一个 X11 窗口支持和 Win32 窗口一样的命中测试穿透功能,即对应 Win32 的 WS_EX_TRANSPARENT...("libXfixes.so.3")] public static extern void XFixesSetWindowShapeRegion(IntPtr display, IntPtr window...XShapeCombineRegion(IntPtr display, IntPtr dest, int destKind, int xOff, int yOff, IntPtr region, int op); 我尝试创建两个窗口...只是这个 libXfixes.so 也足够旧了,基本上系统都会带的 所有代码放在 github 和 gitee 上,可以使用如下命令行拉取代码 先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹...无法打开共享对象文件: 没有那个文件或目录 /home/uos/Downloads/lin/liblibXext.so.so: 无法打开共享对象文件: 没有那个文件或目录 at CPF.Linux.XLib.XShapeCombineRegion

    18210

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

    在 学习 CPF 框架笔记 了解 X11 窗口和消息基础知识 的基础上,假定当前已创建完成了窗口,准备好了事件监听 在 X11 执行绘制图片需要在 Expose 曝光之后进行,可在 XSelectInput..., window); XFlush(display); var gc = XCreateGC(display, window, 0, 0); while (XNextEvent(display, out...而不是读取本机的图片文件,因为读取图片文件还有一个解码的过程,解码过程和 X11 没什么关系,为了让本文示例更贴近 X11 的绘制图片,本文这里就选择自己创建图片像素 byte 数组,填充随意的数据假装是图片...,导致 X11 里面存放了错误的指针地址,可能造成段错误等。...desty 则表示画到哪里 如此即可完成绘制图片逻辑 本文使用的 Program.cs 文件代码如下 using System.Runtime.Loader; using static CPF.Linux.XLib

    17110

    dotnet 后台线程发送 X11 窗口消息

    } finally { XCloseDisplay(display1); } } }); 以上的 handle 是一个 X11...xSetWindowAttributes); 如果在 Task.Run 后台线程里面,使用的是外面的 display 对象,则发送失败 以上代码放在 github 和 gitee 上,可以使用如下命令行拉取代码 先创建一个空文件夹...pull origin ee9c8da351838b0ec3b8ab577a6c9904e024517d 获取代码之后,进入 DikalehebeekaJaqunicobo 文件夹,即可获取到源代码 更多 X11...using CPF.Linux; using System; using System.Diagnostics; using System.Runtime; using static CPF.Linux.XLib...; 以上代码放在 github 和 gitee 上,可以使用如下命令行拉取代码 先创建一个空文件夹,接着使用命令行 cd 命令进入此空文件夹,在命令行里面输入以下代码,即可获取到本文的代码 git init

    14710

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

    本文将告诉大家如何在 X11 里面创建一个窗口时,设置窗口的背景颜色 在 dotnet C# 设置 X11 应用窗口背景透明 的基础上,可以通过创建 XColor 结构体,将 XColor 赋值给到 XSetWindowAttributes...的 background_pixel 进行设置窗口的初始化背景颜色 核心实现如下 先创建 XColor 结构体,代码如下 XColor color = new XColor() { red =...这是因为在X11里面支持多个不同的格式的颜色,需要经过这一步骤才能获取具体设备相关的颜色。...所有的代码如下 using static CPF.Linux.XLib; var display = XOpenDisplay(IntPtr.Zero); var screen = XDefaultScreen...github.com/lindexi/lindexi_gd.git git pull origin 2ff0f8d8c502761d58179fa77c3928c7586ae75f 获取代码之后,进入 X11

    11610

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

    本文将告诉大家如何在 X11 里面设置窗口透明 不同于在 WPF 里面可以使用 AllowsTransparency 简单方便的设置透明,在 X11 里面设置窗口透明的方法比较绕。...大佬提供此方法,我只是代为记录的工具人 以下是一个简单的示例代码,示例代码里面被我忽略掉一些 P/Invoke 调用封装代码,这些被忽略代码可以从本文末尾找到,可以从本文末尾找到整个示例代码的下载方式 先创建一个空的控制台应用...GLX_X_RENDERABLE, 1, GLX_RENDER_TYPE, GLX_RGBA_BIT, GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT...Program.cs 文件的代码如下 using System.Collections.Immutable; using BlankX11App.X11; using static BlankX11App.X11.XLib...GLX_X_RENDERABLE, 1, GLX_RENDER_TYPE, GLX_RGBA_BIT, GLX_DRAWABLE_TYPE, GLX_WINDOW_BIT

    16210
    领券