如何在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
答
我自己解决了!
使用GdkWindow.Raise()作为在此间指出,Stacking widgets in Gtk+
在我的例子中,使用bt1.GdkWindow.Raise()将有BT1的带至前操作的容器中的效果。
注意,如果一个widget是不是一个“窗口”(我不确知的是什么窗口进行了详细的我对Gtk#的知识有限的定义),这是不行的。在这种情况下,小部件可以封装在'EventBox'中,而Raise()应该在其GdkWindow上调用(类似于“ModifyBg(...)”在某些小部件上不起作用,但它确实对于事件框)。
+0
谢谢!这应该有更多的上涨。 –
[GdkWindow.restack](https://developer.gnome.org/gdk3/stable/gdk3-Windows.html#gdk-window-restack),可能? – Cactus