winforms - Ubuntu 中的 Mono winforms 应用程序全屏?

标签 winforms ubuntu mono fullscreen window-managers

只是想知道是否有一种已知的方法可以让 Mono System.Windows.Forms 应用程序在 Ubuntu/Gnome 上全屏显示。

单声道是 2.4.2.3 Ubuntu 是 9.10

在 Windows 上执行它需要一个 pinvoke,显然不会在这里工作。

这就是我将窗口边框设置为无,窗口位置居中,状态最大化:

alt text http://dl.dropbox.com/u/116092/misc/permalink/joggler/screenshot01.png

更新。

也试过:

  • this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
    this.WindowState = System.Windows.Forms.FormWindowState.Maximized;

  • CTRL-F11

  • Text = string.Empty;//没有标题
    最大化框 = false;
    最小化框 = false;
    控件框 = false;
    FormBorderStyle = 无;
    WindowState = 最大化;

  • FormBorderStyle = FormBorderStyle.None;
    位置 = 新点(0, 0);
    Size = Screen.PrimaryScreen.Bounds.Size;

所有这些我都得到了相同的结果。

我遇到了一个线索,它涉及一个涉及 _NET_WM_STATE_FULLSCREEN 的 pinvoke,但就我所知而已。对此的任何指示将不胜感激。

最佳答案

_NET_WM_STATE_FULLSCREEN 只会去掉边框。 GNOME 面板仍会出现。

根据以下帖子,秘诀是摆脱最小/最大尺寸,以便窗口管理器自行调整大小:

http://linux.derkeiler.com/Mailing-Lists/GNOME/2010-01/msg00035.html

这里是一些关于原生规范的文档:

http://standards.freedesktop.org/wm-spec/wm-spec-latest.html

http://www.x.org/docs/ICCCM/icccm.pdf

要直接与 X 窗口系统对话,您必须调用 XLib。为了发送类似 _NET_WM_STATE_FULLSCREEN 的内容,您必须有一个指向窗口和显示器的指针。

我不确定如何找到显示,但我可以提供指向窗口的指针。在 X 上运行时,属性 Form.Handle 应该是指向 X 窗口的指针。

关于winforms - Ubuntu 中的 Mono winforms 应用程序全屏?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2823299/

相关文章:

c# - 文本框控件数据可视化验证的最佳实践

c# - 保持控制始终位于首位

user-interface - 在 Ubuntu 中的 Docker 中运行 GUI 程序

macos - 在 Snow Leopard 上使用 MonoDevelop 开发 GUI 项目

c# - 如何从多线程访问 GUI (GTK)?

c# - mono 是否模拟.NET,或者它只是一个与.NET 语言兼容的框架?

c# - 将 DesignerSerializationVisibility 的默认值设置为隐藏

c# - Control.Focus() 错误

Linux - 使用 wine 运行 .exe 时避免 x 服务器消息

linux - 如何修复 git 中大量文件的 merge 冲突?