在不同的环境中改变不同的尺寸
一段时间以来,一些使用我的应用程序的人抱怨WinForm的绘制方式有些奇怪。 该表格有一个splitcontainer
, panel1
固定。 直到今天,我还没有能够重现他们的问题。
我刚刚在运行32位版Win7企业的笔记本电脑上安装了该应用程序。 (应用程序在运行64位版本的Win7的计算机上构建并运行没有问题。)
为了查看发生了什么,我将项目文件复制到笔记本电脑并使用Visual Studio 2012打开它以查看发生了什么。 然而,让我惊呆了,因为我不知道该怎么办。
在开发。 机器(我的64位win7 ent),表格(和拆分容器)尺寸的规格如下:
- 表格高度:383
- 表格宽度:707
- 分体式容器高度:321
- 拆分容器宽度:691
- 分离器距离:380
当我在笔记本电脑上加载项目时,规格更改为:
- 表格高度:419
- 表格宽度:859
- 分体式容器高度:397
- 拆分容器宽度:921
- 分离器距离:380
现在我终于可以理解一些人无法看到程序应该如何被看到的挫败感。
在32位机器上,分离器部分覆盖了几个按钮,这显然使程序难以使用,因为它们看不到文本。
这有什么原因吗?
我的意思是,如果原始代码设置为特定的大小值,那么无论程序运行在哪里,它都不应该是这样的? (鉴于用户当然没有resize)。
最重要的是,有什么方法可以解决这个问题,而无需构建两个单独的版本?
他们可以在不同的DPI(每英寸点数)下运行他们的系统,因此这会改变控件在Windows窗体上的定位和缩放方式,因为缩放选项会影响字体大小。
-
http://social.msdn.microsoft.com/Forums/en-US/winforms/thread/72995739-60a4-44cd-ba51-fc8be726cba4
-
http://discuss.joelonsoftware.com/default.asp?dotnet.12.664790.5
你可以看看控制面板| 外观和个性化| 显示以查找这些设置:
- 较小 – 100%= 96 DPI
- 中等 – 125%= 120 DPI
- 更大 – 150%= 144 DPI
如果DPI具有效果以及适当调整的内容,您可以查看WinForms Scaling选项。