【发布时间】:2010-02-28 01:19:23
【问题描述】:
我希望创建一个不可见的窗口来处理某些 X 事件(有点像 Winforms 中的NativeWindow)。这在 GTK# 中可能吗?还是我需要使用 P/Invoke 手动创建这样一个窗口到 X 库?
【问题讨论】:
我希望创建一个不可见的窗口来处理某些 X 事件(有点像 Winforms 中的NativeWindow)。这在 GTK# 中可能吗?还是我需要使用 P/Invoke 手动创建这样一个窗口到 X 库?
【问题讨论】:
我不太确定我理解你想要做什么,但 Gtk 中的Windows 默认情况下是不可见的。如果您从未将可见性设置为 true:
window.Visible = true;
或者如果您明确将其设置为 false:
window.Visible = false;
它将保持不可见。
编辑:这是扎克问题的真正解决方案:
我刚刚查看了GTK源代码,您可以在GTK窗口上调用Realize(),使GTK窗口创建其对应的GDK窗口。 GDK 窗口在创建时会立即挂接到 X 服务器。
【讨论】:
Window 连接到X 服务器,同时Window 仍然不可见?
Realize(),让GTK窗口创建对应的GDK窗口。 GDK 窗口在创建时立即挂接到 X 服务器。
还有用于捕获事件的 Gtk.Invisible 类。
【讨论】: