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 计时器试图在主线程之外编辑小部件引起的。
我有一个 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 计时器试图在主线程之外编辑小部件引起的。