对于一个项目,我需要在Gtk-sharp(2.12)下制作一个应该“可重复使用”的弹出窗口。 我正在Ubuntu(14.04,LTS),Monodevelop(4.0.12)下开发
调用更新功能时,应刷新信息并向用户显示。刷新不是问题。我遇到的问题是向用户展示窗口时。
我的想法是使用window.Present()向用户显示它。然而,在测试时,我发现了一种奇怪的行为。测试代码包含在本文的底部。
假设所有示例都以新启动的应用程序开始
情景1:
结果:显示窗口,可以重复步骤2和3。没问题。
情景2:
结果:出现图标但未显示窗口,有时图标会抖动。
我在这里遗漏了什么吗? TestPresent正文中需要更多操作来重置窗口吗?
如果窗口被隐藏,则需要该节目。
static Window win;
public static void Main ()
{
Application.Init ();
win = new Window ("Test");
win.DeleteEvent += (o, args) => Application.Quit();
win.Resize (200, 200);
Button btnHide = new Button (new Label ("Hide"));
btnHide.Clicked += (sender, e) => win.Hide ();
win.Add (btnHide);
GLib.Timeout.Add(5000, new GLib.TimeoutHandler(TestPresent));
win.ShowAll ();
Application.Run ();
}
private static bool TestPresent()
{
win.Show ();
win.Present ();
return true;
}