我的GUI在我运行它的一台计算机上呈现不同
本文关键字:计算机 一台 GUI 运行 我的 | 更新日期: 2023-09-27 18:08:09
我有一个。net应用程序,最初是在Visual Studio Professional 2005中创建的,使用。net 2.0框架。
最近,我在Visual c# Express 2010中打开了这个项目,做了一些小的改变,并使用。net framework 4.0构建了它。
除了一个很烦人的部分,一切都像符咒一样有效。当我在一台1920x1200屏幕的HP EliteBook 8740w上运行这个应用程序时,一组GUI控件被打乱了,这样它们就会彼此叠加在一起。在我的Windows 7 64位工作站上运行时,此错误不会出现,外部显示器为1900x1080分辨率。在分辨率为1024x768的Windows XP笔记本电脑上运行时也不会显示。
我试图连接一个1600x1200外部显示器到EliteBook,但错误也出现在那里。
被搞砸的控件是一组组合框、数字上下起伏和标签,它们被放置在表格布局容器中,而这些容器又被放置在选项卡页控件的选项卡页上。
我尝试从头开始创建一个新的选项卡页控件和表布局容器,然后将组合框等移动到新的表布局容器中,但错误普遍存在。
在这件事上我真的很感激你的帮助,因为我不知道还能尝试什么。我开始怀疑EliteBook上的图形有问题,但是,话又说回来,其他一切都在屏幕上表现得很好。谢谢,弗雷德里克·Israelsson
—Edit—
谢谢你的快速回答。在我有机会看他们之前,我想我自己解决了这个问题。偶然发现了一个关于为什么Visual Studio自动更改控件大小的帖子,尽管你已经将锚和码头属性设置为None。其中一个答案提到了AutoScaleMode属性。我在我的主应用程序窗口上将AutoScaleMode从Font更改为None,并且GUI在我所有的计算机上都很好地呈现。
再次感谢!
/弗雷德里克·Israelsson
我怀疑这是因为两台机器的DPI设置不同。这一直是Windows窗体的一大难题。
这里有一些链接可能会有帮助。
http://msdn.microsoft.com/en-us/library/ms229605.aspx http://www.sellsbrothers.com/writing/winformsAutoScaling.htm这可能与硬件加速有关。您的应用程序是WinForms还是WPF ?当我在Win7 64位上使用VS2010时,我遇到了非常奇怪的行为,因为它在我构建应用程序时试图使用硬件加速。
通过改变视觉体验来提高性能你可能在VS2010中遇到硬件加速的问题。因此,我在渲染使用WPF构建的应用程序时遇到了一个问题。
试试吧:http://blogs.msdn.com/b/zainnab/archive/2010/06/22/improving-performance-by-changing-the-visual-experience-vstipenv0017.aspx
如果这不能解决你的问题,去你的显卡设置(nvidia或amd catalyst),并在电脑上做一个"重置设置",应用程序不能正确地绘制自己。然后再试一次。