2 回答

TA贡献1804条经验 获得超2个赞
这可能是由 AutoScaling 引起的。您可以尝试按照此处的说明禁用它:
export MONO_MWF_SCALING=disable mono myapp.exe
如果这解决了它,您可以通过从表单的设计器代码中删除以下行在您的应用程序中禁用它:
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);
(这一行是由 Visual Studio 在创建新表单时自动添加的。但是,如果您的表单因此在 Linux 上看起来很糟糕,它们在任何默认字体已更改的 Windows 计算机上也会看起来很糟糕。)

TA贡献1797条经验 获得超6个赞
首先,感谢“OL.”,他让我走上了正轨。有些事情显然发生了变化,因此是我自己的答复。
因此,导出MONO_MWF_SCALING =disable 对这种情况完全没有影响。但我没有让自己分心,继续调查。我在解决方案范围内的搜索中没有找到AutoScaleBaseSize。但是设计器文件中的内容是:
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
我注释掉了第一个,并将第二个更改为:AutoScaleMode.None;所以这导致了一种至少适合屏幕的形式。这次有点太小了。尽管在设计器中显示 .Size 为 800x480,但在设计器文件中并没有这样设置。取而代之的是:
this.ClientSize = new System.Drawing.Size(784, 441);
有趣的。也许 Mono 的边界或任何不同。如果某个外部分辨率是目标,那么设置 ClientSize 不是最明智的做法......?我把它改成:
this.Size = new System.Drawing.Size(800, 480);
等等,尺寸是正确的。现在将表单位置设置为 (0,0),一切都如我所愿。嗯,差不多。
原始问题/主要问题得到了回答,因此被接受。对于那些关心的人,我将描述我仍然看到的小问题,作为评论。
- 2 回答
- 0 关注
- 221 浏览
添加回答
举报