GTK#でFixedウィジェットの背景色の色付けを挑むもうまくいかないので、あれやこれや試してみた唯のまとめ的な何か
検証手順
-
以下のよう画面を構成する。
- サイズや場所は適当に。
- MainWindow: Window +- vbox1: VBox +- menubar1: MenuBar +- eventbox1: EventBox +- fixed1: Fixed +- alignment1: Alignment +- eventbox2: EventBox +- fixed2: Fixed +- fixed3: Fixed +- eventbox3: EventBox +- fixed4: Fixed +- fixed5: Fixed +- eventbox4: EventBox +- fixed6: Fixed +- eventbox5: EventBox +- fixed6: Fixed +- fixed7: Fixed
-
MainWindowのコンストラクタの中身を以下のように書き換える
Build (); this.ModifyBg (StateType.Normal, new Gdk.Color (200, 240, 200)); this.eventbox1.ModifyBg (StateType.Normal, new Gdk.Color (0, 0, 255)); this.eventbox2.ModifyBg (StateType.Normal, new Gdk.Color (0, 255, 255)); this.fixed3.ModifyBg (StateType.Normal, new Gdk.Color (0, 255, 0)); this.eventbox3.ModifyBg (StateType.Normal, new Gdk.Color (255, 0, 0)); this.fixed5.ModifyBg (StateType.Normal, new Gdk.Color (0, 0, 100)); this.eventbox4.ModifyBg (StateType.Normal, new Gdk.Color (255, 0, 0)); this.eventbox5.ModifyBg (StateType.Normal, new Gdk.Color (0, 255, 0)); this.fixed8.ModifyBg (StateType.Normal, new Gdk.Color (0, 0, 255));
Build & Run !
結果
- MainWindow <- ⚪︎
+- vbox1
+- menubar1
+- eventbox1 <- ⚪︎
+- fixed1
+- alignment1: Alignment
+- eventbox2: EventBox <- ⚪︎
+- fixed2: Fixed
+- fixed3: Fixed <- X
+- eventbox3: EventBox <- X
+- fixed4: Fixed
+- fixed5: Fixed <- X
+- eventbox4: EventBox <- ⚪︎
+- fixed6: Fixed
+- eventbox5: EventBox <- ⚪︎
+- fixed6: Fixed
+- fixed7: Fixed <- X
- fixed3の下は、たとえEventBoxおいても着色されず。
- そもそもfixed7はイベント受け取れないので、着色されなかったのだろう