c# - 在 Linux X11/Gtk 上创建分层窗口

标签 c# c++ gtk x11

我的问题通常是如何使用 X11 或某些工具包(如 Gtk)在 Linux 上创建和定位分层窗口。当我说分层窗口时,我指的是其形状和透明度由包含 rgb 和 alpha(透明度) channel 的像素数据定义的窗口。请参见下面的屏幕截图。

我已经使用足够简单的 UpdateLayeredWindow API 在 Windows 上广泛使用它们,并且想知道如何在 Linux 上做同样的事情。

谢谢。

Layered butterflies on Windows

最佳答案

X11 最初只支持一位透明度(需要 SHAPE 扩展,但现在几乎所有的 X11 服务器都实现了它)。使用 XShapeCombineMaskgtk_widget_shape_combine_mask 函数。

如果您想要抗锯齿透明度,那么最简单的方法可能是使用 cairo 工具包。可以找到一个例子here .

关于c# - 在 Linux X11/Gtk 上创建分层窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10407963/

相关文章:

c++ - 精确的大有限域线性代数库(例如 GF(2^128)/GF(2^256) )

你能为 gdb 中的 'step' 计时吗?

c# - 使用 C# .NET 驱动程序 2.0 投影 mongodb 子文档

c# - 统计一个字符串在一个字符串中出现的次数

c++ - 来自 C 数组的 STL 数组,无需复制

python - MongoDB Python 和 C++ 客户端 - 多个实例出错

c - 无法在 gtk3 c 程序中连接来自 Glade 的回调函数

gtk - 使用 glade 创建 popover

c# - 在 SQLQuery 中使用 ":="

c# - DataGridView 在 C# 中获取行索引获取超出范围的异常