我正在处理一个 Windows 窗体项目。在这个项目中,控件的大小是在设计器中设置的,自动调整大小是关闭的。然而,当 Windows 7 中的显示设置设为中 (125%) 或大 (150%) 时,控件的大小会发生变化。我怎样才能防止这种行为?
最佳答案
很可能您可以通过设置表单的 AutoScaleMode
property 来关闭此行为。到 AutoScaleMode.None
。
也就是说,不要只是关闭自动缩放,因为这很可能是一件好事!它使您的表单可以在各种分辨率和字体比例设置下工作。例如,如果您设计表单但忘记了视力受损的用户(例如将系统字体缩放比例提高到异常高的百分比的人),那么由于自动缩放,您的表单可能仍然有效。
正如其他答案所建议的,而不是根据固定像素值指定每个控件的位置和大小,然后关闭自动缩放,使用自动布局技术:
- 将控件放入各种容器元素中以安排控件(在网格中 –
TableLayoutPanel
,一个接一个 –FlowLayoutPanel
等); - 设置每个控件的
Dock
和Anchor
属性; - 设置每个控件的
AutoSize
和AutoSizeMode
属性。
正确地做到这一点需要一些练习,但会使您的表单布局更加健壮。
关于c# - Windows 窗体控件的大小在显示设置更改时更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918525/