c# - Windows 窗体控件的大小在显示设置更改时更改

标签 c# .net winforms custom-controls

我正在处理一个 Windows 窗体项目。在这个项目中,控件的大小是在设计器中设置的,自动调整大小是关闭的。然而,当 Windows 7 中的显示设置设为中 (125%)大 (150%) 时,控件的大小会发生变化。我怎样才能防止这种行为?

最佳答案

很可能您可以通过设置表单的 AutoScaleMode property 来关闭此行为。到 AutoScaleMode.None

也就是说,不要只是关闭自动缩放,因为这很可能是一件好事!它使您的表单可以在各种分辨率和字体比例设置下工作。例如,如果您设计表单但忘记了视力受损的用户(例如将系统字体缩放比例提高到异常高的百分比的人),那么由于自动缩放,您的表单可能仍然有效。

正如其他答案所建议的,而不是根据固定像素值指定每个控件的位置和大小,然后关闭自动缩放,使用自动布局技术:

  • 将控件放入各种容器元素中以安排控件(在网格中 – TableLayoutPanel,一个接一个 – FlowLayoutPanel 等);
  • 设置每个控件的DockAnchor属性;
  • 设置每个控件的 AutoSizeAutoSizeMode 属性。

正确地做到这一点需要一些练习,但会使您的表单布局更加健壮。

关于c# - Windows 窗体控件的大小在显示设置更改时更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12918525/

相关文章:

c# - 为 ApplicationUser.cs 添加 Controller ? MVC核心

c# - ORM 试图解决而数据库没有解决的问题是什么?

c# - Windows 窗体 : DataGridView Problem with backgroundcolor after sorting

c# - 如何在 C# 中拖动和移动形状

c# - 以编程方式在 View 中创建列

.net - 您用什么来创建和打印表格/文档?

c# - 使用自定义 logentry 类和自定义 logformatter

c# - 系统.IO.IOException : file used by another process

c# - 双击定时器事件

c# - LINQ 方法的序列有什么重要性吗?