【发布时间】:2012-10-16 15:47:40
【问题描述】:
我正在处理一个 Windows 窗体项目。在这个项目中,控件的大小在设计器中设置,并且自动调整大小被关闭。然而,当 Windows 7 中的显示设置设置为 medium (125%) 或 large (150%) 时,控件的大小会发生变化。如何防止这种行为?
【问题讨论】:
标签: c# .net winforms custom-controls
我正在处理一个 Windows 窗体项目。在这个项目中,控件的大小在设计器中设置,并且自动调整大小被关闭。然而,当 Windows 7 中的显示设置设置为 medium (125%) 或 large (150%) 时,控件的大小会发生变化。如何防止这种行为?
【问题讨论】:
标签: c# .net winforms custom-controls
您很可能可以通过将表单的 AutoScaleMode property 设置为 AutoScaleMode.None 来关闭此行为。
话虽如此,不要只是关闭自动缩放,因为这很可能是一件好事!它使您的表单可以在各种分辨率和字体比例设置下工作。例如,如果您在设计表单时忘记了视力受损的用户(例如,将系统字体缩放比例提高到异常高的用户),那么由于自动缩放,您的表单可能仍然有效。
正如其他答案所暗示的,而不是根据固定像素值指定每个控件的位置和大小,然后关闭自动缩放,而是使用自动布局技术:
TableLayoutPanel,一个接一个 - FlowLayoutPanel 等);Dock和Anchor属性;AutoSize 和AutoSizeMode 属性。正确执行此操作需要一些练习,但会使表单的布局更加健壮。
【讨论】:
使用控件的 Anchor 和 Dock 属性。
【讨论】:
在您的用户控件或表单上将AutoScaleMode 设置为Dpi
【讨论】: