仅限窗口在首次显示时正确渲染

时间:2015-12-28 19:46:34

标签: gtk gtk#

我有一个窗口,我正在打开

if (Window == null) {
    var con = WindowType.GetConstructor(new Type[0]);
    Window = (PopupWindow)con.Invoke(new object[0]);
    //The types are subclasses of PopupWindow.
    Window.Controller = this;
    Window.Show ();
}

只要它是弹出的第一个窗口,这就正确地显示了窗口......如果我关闭窗口并创建一个全新的窗口,窗口只是一个灰色区域,直到我重新开始调试...有任何想法吗?

public PopupWindow () : base(Gtk.WindowType.Toplevel)
{
    this.AppPaintable = true;
    this.Colormap = this.Screen.RgbaColormap;
    this.Events = Gdk.EventMask.AllEventsMask;
    this.Decorated = false;
    this.SkipTaskbarHint = true;
}

示例子类

public StorageWindow () : base()
{
    this.Build ();
    this.Move (this.Screen.Width - 428, 55);
    //set some label props.

    StorageCircle.ExposeEvent += (o, args) => {
        //Draw a circle
    };

}

P.S。这就是我摧毁窗户的方式。

if (Window != null) {
    Window.Destroy();
    Window = null;
}

1 个答案:

答案 0 :(得分:0)

整个问题原来是由非gtk计时器试图编辑主线程之外的小部件引起的。