C# 在GTK#中创建不可见窗口?

C# 在GTK#中创建不可见窗口?,c#,mono,window,x11,gtk#,C#,Mono,Window,X11,Gtk#,我希望创建一个不可见的窗口来处理某些X事件(有点像Winforms中的NativeWindow)。这在GTK中可能吗?或者我需要使用P/Invoke到X库手动创建这样一个窗口吗?我不太清楚您想做什么,但是Gtk中的窗口在默认情况下是不可见的。如果从未将可见性设置为true: window.Visible = true; 或者如果显式将其设置为false: window.Visible = false; 它将保持隐形 编辑:这是扎克问题的真正解决方案: 我刚刚检查了GTK源代码,您可以在GTK

我希望创建一个不可见的窗口来处理某些X事件(有点像Winforms中的
NativeWindow
)。这在GTK中可能吗?或者我需要使用P/Invoke到X库手动创建这样一个窗口吗?

我不太清楚您想做什么,但是Gtk中的

窗口在默认情况下是不可见的。如果从未将可见性设置为true:

window.Visible = true;
或者如果显式将其设置为false:

window.Visible = false;
它将保持隐形

编辑:这是扎克问题的真正解决方案:


我刚刚检查了GTK源代码,您可以在GTK窗口上调用Realize(),使GTK窗口创建相应的GDK窗口。GDK窗口在创建时会立即连接到X服务器


还有Gtk.Invisible类,用于捕获事件。

谢谢您的回答!我需要做些什么来确保
窗口
连接到X服务器,而
窗口仍不可见?我不确定,我对X本身一无所知。您可能会在gtk sharp list邮件列表()上找到更好的答案。我刚刚检查了gtk源代码,您可以在gtk窗口上调用
Realize()
,使gtk窗口创建其相应的GDK窗口。GDK窗口在创建时会立即连接到X服务器。