我正在开发一个Windows Forms项目。在此项目中,控件的大小在设计器中设置,并且自动调整大小已关闭。但是,当Windows 7中的显示设置设置为中(125%)或大(150%)时,控件会更改大小。我该如何防止这种行为?
很可能你可以通过将表单的AutoScaleMode
property设置为AutoScaleMode.None
来关闭此行为。
话虽这么说,不要只是关闭自动缩放,因为它很可能是一件好事!它使您的表单以各种分辨率和字体比例设置工作。例如,如果您设计表单但忘记了视力受损的用户(例如,将系统字体扩展到异常高百分比的人),由于自动缩放,您的表单可能仍然有效。
正如其他答案所示,不是根据固定像素值指定每个控件的位置和大小,然后关闭自动缩放,而是使用自动布局技术:
TableLayoutPanel
,一个接一个 - FlowLayoutPanel
等);Dock
和Anchor
属性;AutoSize
和AutoSizeMode
属性。正确地执行此操作需要一些练习,但会使表单的布局更加健壮。
使用控件的Anchor和Dock属性。
在您的UserControl或Form上将AutoScaleMode
设置为Dpi