我尝试使用
更改GTK#中按钮小部件的颜色button1.ModifyBase(Statetype.Normal,new Gdk.Color(1,1,1));
从另一个按钮单击事件调用此方法,但小部件颜色未更新
为什么会这样?
答案 0 :(得分:2)
您可以使用ModifyBG方法代替“片状”ModifyBase,传递相同的参数。
button1.ModifyBG(Statetype.Normal,new Gdk.Color(1,1,1));
顺便说一句,我说因为你正在使用Mono GTK#来处理GTK2.x,所以当谈到'主题'和Mono时,双方都有很多问题。 GTK3有一个使用CSS方法的编组模型,但Mono发行版卡在GTK2上。如果您希望以GTK方式主题/着色您的应用程序,您可以搜索主题GTK 2.x.注意:如果使用MonoDevelop / XS,请确保您在IDE之外定期测试/运行它,因为应用程序主题将发生变化(这在OS-X上非常明显,而且这个问题可以追溯到多年和几年)。
如果您的其他窗口小部件在背景颜色中没有“正常”,则可以将它们放置在事件框窗口小部件中,因为该窗口小部件具有背景,而其他窗口小部件可能没有。您可以在自2007年以来的Mono电子邮件主题中搜索此条件。