如何在gtk中的ohter小部件的前面创建一个小部件

问题描述:

我想在容器的前部制作一个小部件(自定义小部件)(固定),例如在网页设计中设置“z-index”。但我没有找到任何可以做到的方法。如何在gtk中的ohter小部件的前面创建一个小部件

例如。

Button bt1 = new Button(); 
Button bt2 = new Button(); 
bt1.WidthRequest = 100; 
bt2.WidthRequest = 100; 
Fixed fx1 = new Fixed(); 
fx1.put(bt1,0,0); 
fx1.put(bt2,50,0); 

然后bt2将覆盖bt1,因为bt2是最后添加的小部件。现在我想让bt1覆盖bt2,即bt1位于fx1的前面。如何做?

有一个类似的问题,其答案无法解决它。 GTK# Widget in front of another widget

+0

[GdkWindow.restack](https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#gdk-window-restack),可能? – Cactus

我自己解决了!

使用GdkWindow.Raise()作为在此间指出,Stacking widgets in Gtk+

在我的例子中,使用bt1.GdkWindow.Raise()将有BT1的带至前操作的容器中的效果。

注意,如果一个widget是不是一个“窗口”(我不确知的是什么窗口进行了详细的我对Gtk#的知识有限的定义),这是不行的。在这种情况下,小部件可以封装在'EventBox'中,而Raise()应该在其GdkWindow上调用(类似于“ModifyBg(...)”在某些小部件上不起作用,但它确实对于事件框)。

+0

谢谢!这应该有更多的上涨。 –