如何固定 C# Windows Form 应用程序的大小,防止其自动调整大小

5
我有一个C# Windows窗体应用程序正在开发中。当我在开发PC上构建表单时,它看起来很好,但是当我将exe文件移动到另一台机器上时,所有内容都会重新调整大小。这就导致了picturebox和button控件的错位。虽然我在VS中指定了控件的大小,但似乎被忽略了。我还将最小和最大尺寸固定为相同值,但问题仍未解决。
请问是否有人可以指点我错过的东西,因为我需要修复控件的大小。
提前感谢。
新电脑 enter image description here 开发PC enter image description here
this.interviewPb.Image = ((System.Drawing.Image(resources.GetObject("interviewPb.Image")));
this.interviewPb.Location = new System.Drawing.Point(771, 366);
this.interviewPb.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2);
this.interviewPb.Name = "interviewPb";
this.interviewPb.Size = new System.Drawing.Size(393, 492);
this.interviewPb.TabIndex = 9;
this.interviewPb.TabStop = false;

1
你的应用程序可能已经进行了缩放。请查看此线程 - Sriram Sakthivel
6
可能另一台机器的 DPI 配置与你的不同。 - Zaid Amir
2
@RobertSnyder 那怎么会有帮助呢? - Thorsten Dittmar
2
@ThorstenDittmar 转向 WPF 将立即解决您所有的问题,而无需编写任何代码!!1! - Uwe Keim
3
@UweKeim 是的,我已经注意到了。我的项目人力工时已经减少到接近零了。我所需要做的就是在VS中创建一个新的WPF项目,然后完成即可。 - Thorsten Dittmar
显示剩余6条评论
1个回答

8
尝试将表单的 AutoScaleMode 属性设置为 none。这样做可以防止在不同机器上 DPI 分辨率不同时进行调整大小。

同时,对于所有具有此“AutoScaleMode”属性的嵌套(用户)控件也执行此操作。 - Uwe Keim
@UweKeim 或者你可以设置 Inherited - Sriram Sakthivel
3
总的来说,这是相当糟糕的建议。这并不能阻止字体被重新缩放,它们的大小用点表示。因此,它们就不能适应其控件了。忽略“视网膜”显示器是另一件每个人都会很快后悔的事情。 - Hans Passant
@HansPassant 这是真的 - 但是尝试在不同的 DPI 分辨率下保持相同的控件大小也是 OP 所要求的。我宁愿说应该重新考虑最初的需求。 - Thorsten Dittmar
在我的项目中,我总是以像素为单位指定字体大小。当Windows足够支持Retina分辨率时,我会在15年后改回DPI。 - Uwe Keim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接