2013-12-14 5 views

ответ

2

Вместо «flaky» ModifyBase вы можете просто использовать метод ModifyBG, те же параметры передаются.

button1.ModifyBG(Statetype.Normal,new Gdk.Color(1,1,1)); 

Кстати, я говорю слоеное, так как вы имеете дело с GTK2.x под Mono GTK # и есть тонны вопросов с обеих сторон, когда речь идет о «тематизации» и Mono. GTK3 имеет модель с использованием CSS-подхода, но Mono-дистрибутив застрял на GTK2. Вы можете искать темы GTK 2.x, если хотите, чтобы тема/раскрасить приложение GTK. Примечание. Если вы используете MonoDevelop/XS, убедитесь, что вы регулярно тестируете/запускаете его за пределами среды IDE, поскольку изменения в приложении будут меняться (это действительно очевидно в OS-X и снова - проблема, которая возникает годами и годами).

Если у вас есть другие виджеты, которые не корректно ведут себя в их цветовой гамме, вы можете разместить их внутри виджета eventbox, так как у этого виджета есть фон, а другие - нет. Вы можете найти это условие в потоках электронной почты Mono, как это было с 2007 года.

+0

Пробовал это тоже, не работает. Но он работает в случае главного окна GTK при вызове из основного потока GTK. Я попытался позвонить это для кнопки из основного потока, все еще не работает для виджетов – techno

+0

«Работа в главном окне на главной теме»? Вы можете «установить цвет фона окна в потоке основного цикла GTK + и« не »цвет фона виджета, родившийся для этого окна? –

+0

Да. Я установил код в Gtk.Application.Invoke() – techno

Смежные вопросы