1

我找不到包含此功能的示例,或者我在文档中错过了它,或者它不存在。

我有一个全屏 GUI 程序,当用户需要输入数字时,必须在屏幕中央出现一个计算器窗口弹出窗口。用户输入一个数字并点击回车,或者点击取消继续通过窗口。

问题是单击计算器后面的全屏窗口会将该窗口带到前面并隐藏计算器而没有完成预期的输入,这可能会让用户感到烦恼

我想我正在尝试创建的功能是当您按下“打开文件”按钮时在大多数文本编辑器/IDE 中发生的情况。如果您想查看代码,请告诉我,目前它只是两个单独的 Window 类。

4

1 回答 1

1

Window 对象的 Present() 函数将特定的窗口带到前面。因此,在您希望保留在前面的窗口上添加一个 FocusOutEvent 侦听器,例如:

windowObj.FocusOutEvent += (obj, args) => windowObj.Present();

将工作。

另一种方法(也是更好的方法)是将窗口的 Modal 属性设置为 true。

如果您偶然发现了这一点,并且您正在寻找一个弹出窗口,该窗口会暂停调用它以等待输入的任何内容,请参阅以下问题:

gtk# 窗口线程

您基本上使用 Dialog 类而不是 Window 并将您的元素添加到 Dialog 的 ActionArea。

希望这可以帮助。

于 2013-11-07T02:43:31.480 回答