【问题标题】:Winforms different sizes in different environments不同环境下不同尺寸的Winforms
【发布时间】:2012-08-25 15:02:40
【问题描述】:

一段时间以来,一些一直在使用我的应用程序的人抱怨 WinForm 的绘制方式出现了一些奇怪的行为。 该表单有一个splitcontainer,其中panel1 已修复。 直到今天,我都无法重现他们的问题。

我刚刚在运行 32 位版本的 Win7 企业版的笔记本电脑上安装了该应用程序。 (应用程序在运行 64 位 Win7 ent 的计算机上构建并运行没有问题。)

为了查看发生了什么,我将项目文件复制到笔记本电脑并使用 Visual Studio 2012 打开它以查看发生了什么。但是,我惊呆了,因为我不知道该怎么办。

在开发中。机器(我的64位win7 ent),表格(和分体容器)尺寸规格如下:

  • 表格高度:383
  • 表格宽度:707
  • 拆分容器高度:321
  • 拆分容器宽度:691
  • 分离器距离:380

当我在笔记本电脑上加载项目时,规格更改为:

  • 表格高度:419
  • 表格宽度:859
  • 拆分容器高度:397
  • 拆分容器宽度:921
  • 分离器距离:380

现在我终于可以理解有些人无法以应有的方式看到该程序的挫败感了。

在 32 位机器上,分割器部分覆盖了几个按钮,这显然使程序难以使用,因为它们看不到文本。

发生这种情况有什么原因吗?

我的意思是,如果将原始代码设置为特定的大小值,那么无论程序在哪里运行都不应该是这样吗? (考虑到用户当然不会调整大小)。

然后最重要的是,有没有什么方法可以解决这个问题而无需构建两个单独的版本?

【问题讨论】:

  • 查看屏幕大小和字体缩放。

标签: c# winforms


【解决方案1】:

他们可能以不同的 DPI(每英寸点数)运行他们的系统,因此由于缩放选项和对字体大小的影响,这正在改变控件在 Windows 窗体上的定位和缩放方式。

您可以查看控制面板 |外观和个性化 |显示以查找这些设置:

  • 更小 - 100% = 96 DPI
  • 中等 - 125% = 120 DPI
  • 更大 - 150% = 144 DPI

如果 DPI 有影响,您可以查看 WinForms 缩放选项以及适当调整的内容。

【讨论】:

  • 非常感谢,我花了很长时间才重现这个问题。我从来没有想过这一点,现在我亲眼看到了,我至少可以确定它就在那里。现在我只想了解如何确保它不会自动缩放。 (或者让人们可以自行决定是否希望它自动缩放)。
  • 谢谢 - 非常有用!
猜你喜欢
  • 2020-12-26
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 2016-11-06
  • 2015-02-28
  • 2016-08-18
相关资源
最近更新 更多