2015-08-19 89 views
1

我想在容器的前部製作一個小部件(自定義小部件)(固定),例如在網頁設計中設置「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

回答

1

我自己解決了!

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

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

注意,如果一個widget是不是一個「窗口」(我不確知的是什麼窗口進行了詳細的我對Gtk#的知識有限的定義),這是不行的。在這種情況下,小部件可以封裝在'EventBox'中,而Raise()應該在其GdkWindow上調用(類似於「ModifyBg(...)」在某些小部件上不起作用,但它確實對於事件框)。

+0

謝謝!這應該有更多的上漲。 –

相關問題