在Ubuntu的全屏单声道winforms应用程序?

只是想知道是否有一种已知的方式获取Mono System.Windows.Forms应用程序去在Ubuntu / Gnome的全屏。

单声道是2.4.2.3 Ubuntu是9.10

在Windows上进行操作需要一个密码,显然不能在这里工作。

这是我设置窗口边界为none,窗口位置居中,状态最大化:

替代文字http://img.zgserver.com/winforms/screenshot01.png

更新。

也试过了:

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

  • CTRL-F11

  • Text = string.Empty; // 无标题
    MaximizeBox = false;
    MinimizeBox = false;
    ControlBox = false;
    FormBorderStyle = None;
    WindowState =最大化;

  • FormBorderStyle = FormBorderStyle.None;
    Location = new Point(0,0);
    大小= Screen.PrimaryScreen.Bounds.Size;

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

我遇到了一个牵扯到_NET_WM_STATE_FULLSCREEN的问题,但是就我所知。 任何指针,将不胜感激。

_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窗口的指针。

不知道你是什么意思的“全屏” – 但我写了几个Windows.Forms应用程序接管了屏幕,没有一个单一的PInvoke。

以下是我如何配置我的主窗体…

 Text = string.Empty; // No caption MaximizeBox = false; MinimizeBox = false; ControlBox = false; FormBorderStyle = None; WindowState = Maximized; 

(可选)

 TopMost = true; 

希望这可以帮助。

你需要在ubuntu中禁用视觉效果。

编辑:并确保您的表单大小至少是无界限的屏幕分辨率。 如果边框在设计时间,而你在代码中删除它们,你将需要像1030×796这样的1024×768显示器。

我已经受到这个问题2天,最后我得到的解决方案:点击左侧工具栏上的第一个图标,并搜索compizconfig程序。 去偏好 – >统一,你会看到左侧有统一插件的勾号。 删除该刻度,你会看到顶部菜单栏消失。 虽然这个线程很老,但我仍然希望能帮助任何遇到这个问题的人寻求帮助。

你尝试过吗?

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

不幸的是,我现在没有Ubuntu可用,但是我可以在旧的单声道版本中看到旧的补丁。

应该可以用“CTRL + F11”热键在全屏模式下显示每个在gnome内部运行的应用程序。

也许你可以尝试

 System.Windows.Forms.SendKeys.Send(); 

但这只是一个猜测,我没有一个Linux运行atm来试试这个。 但也许这有帮助。

我目前无法测试,但是您是否尝试过简单的调整大小?

 form.FormBorderStyle = FormBorderStyle.None form.Location = Point(0, 0) form.Size = Screen.PrimaryScreen.Bounds.Size 

现在我通过设置面板的自动隐藏属性来解决这个问题。

不理想,因为它取决于用户改变他们的环境使用我的应用程序,但总比没有好。