2016-06-02 4 views
1

Я создаю приложение, которое отображает список бизнес-объектов внутри виджета Gtk.ScrolledWindow. Этот материал работает как шарм с одним исключением.Gtk.Viewport background transparent

Поскольку я использую фоновое изображение, я хотел бы, чтобы Gtk.Viewport внутри ScrolledWindow был прозрачным (или это ScrolledWindow, который рисует белый фон?), Чтобы фоновое изображение было видимым.

Я уже много искал, но не нашел рабочего решения, но я наткнулся на сообщение, в котором упоминалось, что экземпляры Viewport уже должны быть прозрачными ?!

Я использую MonoDevelop 5.10.3 и Gtk # для .Net 2.12.30. Это известная проблема, и есть ли способ исправить это?

Thx за любую помощь

ответ

0

Поскольку Gdk.Color не поддерживает альфу это не прямо вперед. Вы можете попробовать использовать Cairo для этого, так как это поддержка альфа, если вы подключаетесь к событию экспонирования виджетов, скрывающих фоновое изображение, что-то вроде следующего?

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 - это размер области, которую вы хотите очистить. Надеюсь это поможет! Удачи.

+0

Спасибо muszeo Я собираюсь дать ему попробовать и сообщит, если это работает – slator

+0

Я только что попробовал ваше предложение, и он как бы указал мне в правильном направлении. Поскольку фон - это градиент, я смог подключиться к Widget.ExposeEvent и подделка того же градиента в Gtk.Viewport. К сожалению, это не будет решением для всех людей, имеющих одну и ту же проблему, но для тех, кто ищет другую http://www.gtkforums.com/viewtopic.php?t=4552 – slator

+0

отлично, рад, что я мог бы каким-то образом помочь ... – muszeo