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++ - 带有Gio文件监视器的gtkmm应用程序

c# - 通过 ServiceStack api 使用 Linq2Twitter 和缓存的 OAuth token

c# - 使用 OxyPlot 从 PlotModel 渲染 png 图像

c# - 为什么编码回调委托(delegate)的结构会导致 AccessViolationException

c++ - C++中的多级继承

c++ - LLVM万花筒教程JIT编译问题

python - 当窗口/对话框为 "presented"时发出 gtk+ 信号

c# - ASP.NET C# 目标空白不适用于 LinkBut​​ton

c++ - 根据 Qt 中的硬件调整主窗口的大小?

c - 将TAB连接到gtkEntry