如何在c#GTK mono中将背景颜色设置为固定?

时间:2013-08-28 15:32:59

标签: c# gtk monodevelop

我是单声道C#Gtk的新手。我用这个代码创建了一个带有两个按钮的窗口:

using Gtk;
using Gdk;

class FirstScreen : Gtk.Window
{

public FirstScreen() : base("Buttons")
{
    SetDefaultSize(250, 200);
    SetPosition(WindowPosition.Center);

    DeleteEvent += delegate { Application.Quit(); };

    Fixed fix = new Fixed();

    Button btn1 = new Button("Take Photo");

    Button btn2 = new Button("Take Video");

    Gdk.Color col = new Gdk.Color();
    Gdk.Color.Parse("red", ref col);
    fix.(StateType.Normal, col);

    fix.Put(btn1,30, 80);
    fix.Put(btn2, 130, 80);


    Add(fix);
    ShowAll();
}


public static void Main() 
{
    Application.Init();
    new FirstScreen();
    Application.Run();
}

}

我希望窗口的背景颜色或固定的颜色可以更改。我们怎么做呢?请帮助?

2 个答案:

答案 0 :(得分:1)

默认情况下,Gtk.Fixed没有自己的Gdk.Window,但在其父窗口上绘制并且不会绘制任何背景。要让它绘制背景,只需告诉它创建自己的Gdk.Window

fix.HasWindow = true;

这就是全部。

答案 1 :(得分:0)

您可以尝试使用事件框。并在框中建立您的对象。例如:

eventbox.ModifyBg (StateType.Normal, new Gdk.Color (0, 0, 0));  //Zeros represent of (r,g,b)