在不同的环境中改变不同的尺寸

一段时间以来,一些使用我的应用程序的人抱怨WinForm的绘制方式有些奇怪。 该表格有一个splitcontainerpanel1固定。 直到今天,我还没有能够重现他们的问题。

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

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

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

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

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

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

现在我终于可以理解一些人无法看到程序应该如何被看到的挫败感。

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

这有什么原因吗?

我的意思是,如果原始代码设置为特定的大小值,那么无论程序运行在哪里,它都不应该是这样的? (鉴于用户当然没有resize)。

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

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

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

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

如果DPI具有效果以及适当调整的内容,您可以查看WinForms Scaling选项。