我正在为现有的 Mono/C#/GTK# 应用程序添加拖放支持。我想知道当我开始拖动对象时是否可以在鼠标指针下方出现的图标上使用 RGBA 透明度。
到目前为止,我意识到以下几点:
- 我可以通过调用该
Gtk.Drag.SourceSetIconPixbuf()
方法来设置有问题的位图。但是,Alpha 透明度并不好用:不完全不透明的像素会以这种方式获得 100% 透明。 我还尝试调用
RenderPixmapAndMask()
,GdkPixbuf
以便可以使用Gtk.Drag.SourceSetIcon()
我的Screen
. 它也不起作用:每当我开始拖动时,都会出现以下错误:[Gdk] IA__gdk_window_set_back_pixmap: assertion 'pixmap == NULL || gdk_drawable_get_depth (window) == gdk_drawable_get_depth (pixmap)' failed
.这样,像素图甚至不会被复制,只有一个白色的形状(可能由 的
mask
参数设置SetSourceIcon()
)在拖动时显示。
我想问是否有办法让这些图标具有 alpha 透明度,尽管我没有这样做。如果不可能,讨论缺少此功能的原因的答案也会有所帮助。谢谢你。
(合成当然是在我的桌面上启用的(Ubuntu/10.10,Compiz/0.8.6-0ubuntu9)。)