一段时间以来,一些使用我的应用程序的人抱怨WinForm的绘制方式有些奇怪。
该表单有一个splitcontainer
,其中panel1
已修复。
直到今天,我还没有能够重现他们的问题。
我刚刚在运行32位版本的Win7企业的笔记本电脑上安装了该应用程序。 (应用程序在运行64位版本的Win7的计算机上构建并运行没有问题。)
要查看发生了什么,我将项目文件复制到笔记本电脑并使用Visual Studio 2012打开它以查看发生了什么。然而,让我惊呆了,因为我不知道该怎么办。
在开发者身上。机器(我的64位win7 ent),表格(和拆分容器)尺寸的规格如下:
当我在笔记本电脑上加载项目时,规格会改为:
现在我终于可以理解一些人无法看到该节目的挫折感。
在32位机器上,分离器部分覆盖了几个按钮,这显然使程序难以使用,因为它们看不到文本。
这有什么原因吗?
我的意思是,如果原始代码设置为特定的大小值,那么无论程序运行在何处都不应该如此? (鉴于用户当然没有调整大小)。
然后最重要的是,有什么方法可以解决这个问题,而无需构建两个单独的版本?
答案 0 :(得分:12)
他们可能在不同的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
您可以查看控制面板|外观和个性化|显示以查找这些设置:
如果DPI具有效果以及适当调整的内容,您可以查看WinForms Scaling选项。