Gtk.Viewport 背景透明度

Gtk.Viewport background transparency

我正在构建一个在 Gtk.ScrolledWindow 小部件中显示业务对象列表的应用程序。除了一个例外,这东西就像一个魅力。

因为我使用的是背景图像,所以我希望 ScrolledWindow 中的 Gtk.Viewport 是透明的(或者它是绘制白色背景的 ScrolledWindow?),以便背景图像可见。

我已经在谷歌上搜索了很多但找不到任何可行的解决方案,但我偶然发现了 post 提到视口实例应该已经是透明的?!

我正在使用 MonoDevelop 5.10.3 和 Gtk# for .Net 2.12.30。这是一个已知问题吗?有什么办法可以解决这个问题吗?

感谢任何帮助

因为 Gdk.Color 不支持 alpha,所以这不是直截了当的。您可以尝试使用 Cairo 来做到这一点,因为它支持 alphas,如果您挂钩到隐藏背景图像的小部件的公开事件,如下所示?

protected void aWidget_ExposeEvent (object o, ExposeEventArgs args)
{
    using (Cairo.Context _cc = CairoHelper.Create (args.Event.Window)) {
        _cc.SetSourceRGBA (1, 1, 1, 0);
        _cc.Rectangle (0, 0, <WIDTH>, <HEIGHT>);
        _cc.StrokePreserve ();
        _cc.Fill ();
    }
}

其中WIDTH和HEIGHT是你要清除的区域的大小。希望这可以帮助!祝你好运。