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

Ric*_*ard 12 c# winforms

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

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

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

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

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

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

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

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

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

这有什么原因吗?

我的意思是,如果原始代码设置为特定的大小值,那么无论程序在何处运行,它应该是怎样的?(鉴于用户当然没有调整大小).

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

Col*_*ith 12

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

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

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

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