我有一个窗口,我正在打开
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;
}
答案 0 :(得分:0)
整个问题原来是由非gtk计时器试图编辑主线程之外的小部件引起的。