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

时间:2012-08-25 15:02:41

标签: c# winforms

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

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

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

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

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

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

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

现在我终于可以理解一些人无法看到该节目的挫折感。

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

这有什么原因吗?

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

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

1 个答案:

答案 0 :(得分:12)

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

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

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

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