我在使带有 WinForms GUI 的 Mono 应用程序通过启用了 X11 转发的 SSH 连接运行时遇到了一些问题。
我坐在一台 Windows 10 笔记本电脑前。我安装了 Xming 和 Vcxsrv。我连接的机器是一台运行 Ubuntu 16.10 的虚拟机。我使用 KiTTY 从笔记本电脑连接到虚拟机。我在 KiTTY 配置中选中了“启用 X11 转发”复选框以进行连接。我在虚拟机上使用 Mono 版本 5.4.0.167。
当我连接到 VM 并运行 X 应用程序(如 xeyes 或 Firefox)(当 Vcxsrv 在笔记本电脑上运行)时,应用程序窗口会打开(在后台),并且一旦移到前台,就会按预期运行。
但是,当我运行 Mono 应用程序(例如,这当我打开一个应该打开图形界面的页面时,行为并不像预期的那样。Windows 任务栏显示 X 应用程序已打开,将鼠标悬停在任务栏图标上甚至会在预览中显示(预期的)用户界面。但是,单击任务栏图标不会将用户界面带到前台;即使我最小化所有其他打开的应用程序,用户界面也不会显示出来。当我在笔记本电脑上使用 Xming 而不是 Vcxsrv 时,行为是相同的。
Mono X11 驱动程序和 Vcxsrv / Xming 之间是否存在已知的不兼容性?有什么好方法可以调试此问题?
答案1
一些窗口管理器在改变屏幕分辨率时会遇到麻烦 - 这可能会导致窗口在某些情况下被拉出屏幕:远程 X 就是其中之一,拔下显示器是另一种情况。
通过最大化窗口(或将窗口移动到可见区域),您可以修复它,大多数情况下是永久修复。
顺便说一句:这与单声道无关。