【问题标题】:Create Invisible Window in GTK#?在 GTK# 中创建隐形窗口?
【发布时间】:2010-02-28 01:19:23
【问题描述】:

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

【问题讨论】:

    标签: c# mono window x11 gtk#


    【解决方案1】:

    我不太确定我理解你想要做什么,但 Gtk 中的Windows 默认情况下是不可见的。如果您从未将可见性设置为 true:

    window.Visible = true;
    

    或者如果您明确将其设置为 false:

    window.Visible = false;
    

    它将保持不可见。

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

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

    【讨论】:

    • 感谢您的回答!我需要做些什么来确保Window 连接到X 服务器,同时Window 仍然不可见?
    • 我不确定,我对 X 本身一无所知。您可能会在 gtk-sharp-list 邮件列表 (lists.ximian.com/mailman/listinfo/gtk-sharp-list) 上找到更好的答案。
    • 我刚查了GTK源码,你可以在GTK窗口上调用Realize(),让GTK窗口创建对应的GDK窗口。 GDK 窗口在创建时立即挂接到 X 服务器。
    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-02-01
      • 2012-05-11
      • 1970-01-01
      • 1970-01-01
      • 2011-01-08
      • 2019-05-13
      • 1970-01-01
      相关资源
      最近更新 更多