Window 仅在首次展示时正确呈现

Window Only Renders correctly on first show

我有一个 window 正在打开

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 ();
}

这会正确显示 window,只要它是第一个弹出的 windows...如果我关闭 window 并创建一个全新的,在我重新开始调试之前,window 只是一个灰色区域……有什么想法吗?

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。这就是我摧毁 window.

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

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