【问题标题】:Form Looks Different on Another Computer表格在另一台计算机上看起来不同
【发布时间】:2012-11-19 15:05:45
【问题描述】:

当我在我的机器上构建我的表单时,它看起来很好,但是当它在不同的计算机上编译时,表单本身的大小是错误的。标签四处移动,事物不再正确对齐。

我如何保证在任何计算机上一切看起来都一样?

我尝试将AutoScaleMode 设置为无,这有点帮助,但是标签部分位于相应的文本框下方。

【问题讨论】:

  • 控件的大小和位置如何?我从未见过我的表格最终以不同的分辨率出现。
  • 两台机器上的DPI设置可能不同。
  • 您如何对控件进行分组?您是否使用任何布局控件?你在使用锚点吗?
  • 尝试设置窗口fontSize & Family
  • 你能张贴截图来显示差异吗?

标签: c# winforms visual-studio-2010


【解决方案1】:

字体或 DPI 不同。

而且我从来没有真正找到表达AutoScaleMode = (most appropriate of font or dpi)的方法。

但是试试AutoScaleMode = DPIAutoScaleMode = Font其中一个应该可以工作。

我们从未找到可靠的方法来处理此问题。我们的工作场所曾经在所有工作站上强制执行 DPI,但后来发生了变化。处理它的最佳方法是确保使用 FlowLayoutPanel 或 TableLayoutPanels 布局控件,而不是控件的绝对定位。

【讨论】:

  • 如果您进入控制面板\外观和个性化\显示,您可以在 100%、125% 和 150% 之间进行选择。我假设这会改变 DPI。不同机器上的字体会有什么不同?
  • 你是对的。那是DPI;在我看来,微软只是用一种奇怪的方式来表达它。您可以更改对话框等中使用的系统字体,例如this
  • 有没有办法判断他们是否更改了 DPI 或字体?我首选的解决方案是一个消息框,告诉他们不要再搞砸了。哈哈
【解决方案2】:

我最近遇到了这个问题,结果证明以 125% 或中等设置编译会使二进制文件对 100% 或 150% 的更改免疫。您仍然需要将 AutoScaleMode 设置为 None。

【讨论】:

    【解决方案3】:

    即使话题结束了,我的两分钱,因为我遇到了同样的问题,表单的大小不同(在我的情况下更大),但修复后的控件相同。我只是通过赋予原始表单比控件更小的尺寸来解决它,并让它自动增长。

    我也应用了这篇文章 (How to write WinForms code that auto-scales to system font and dpi settings?) 的指导方针,但它并没有解决我的问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-16
      • 2020-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-21
      相关资源
      最近更新 更多