12

一段时间以来,一些一直在使用我的应用程序的人抱怨 WinForm 的绘制方式出现了一些奇怪的行为。形式有固定的splitcontainerpanel1直到今天,我都无法重现他们的问题。

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

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

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

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

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

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

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

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

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

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

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

4

1 回答 1

13

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

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

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

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

于 2012-08-25T15:40:10.413 回答