我的UI在我运行它的一台计算机上呈现的方式不同

时间:2011-09-09 09:54:20

标签: c# .net visual-studio-2010

我有一个最初使用.Net 2.0框架在Visual Studio Professional 2005中创建的.Net应用程序。

最近,我在Visual C#Express 2010中打开了这个项目,做了一些小改动,并使用.Net framework 4.0构建了它。

除了一个非常烦人的部分外,一切都像魅力一样。当我在具有1920x1200屏幕的HP EliteBook 8740w上运行应用程序时,一组GUI控件会随机移动,以便它们彼此重叠。在具有1900x1080分辨率的外部显示器的Windows 7 64位工作站上运行时,此错误不会显示。在1024x768分辨率的Windows XP笔记本电脑上运行时也没有显示。

我尝试将1600x1200外接显示器连接到EliteBook,但错误也显示在那里。

混乱的控件是一组组合框,numericUpAndDowns和标签,放在表格布局容器中,然后放在标签页控件的标签页上。

我尝试从头开始创建一个新的标签页控件和表格布局容器,然后将组合框等移动到新的表格布局容器中,但错误占优势。

我真的很感激这方面的一些帮助,因为我不知道还有什么可以尝试。我开始怀疑EliteBook上的图形有问题,但是,再一次,其他一切在屏幕上呈现得很好。

谢谢, Fredrik Israelsson

---编辑---

感谢您的快速解答。在我有机会看到它们之前,我想我自己解决了这个问题。偶然发现了一个关于为什么Visual Studio会自动更改控件大小的线程,尽管有人将锚点和停靠属性设置为None。其中一个答案提到了AutoScaleMode属性。我在主应用程序窗口中将AutoScaleMode从Font更改为None,并且没有GUI在我的所有计算机上都能很好地呈现。

再次感谢!

/ Fredrik Israelsson

2 个答案:

答案 0 :(得分:4)

我怀疑这是因为这两台机器有不同的DPI设置。 Windows Forms总是令人痛苦。

以下是一些可能有用的链接。

http://msdn.microsoft.com/en-us/library/ms229605.aspx

http://www.sellsbrothers.com/writing/winformsAutoScaling.htm

答案 1 :(得分:0)

它可能与硬件加速有关。您的应用程序是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)并在应用程序无法正确绘制自己的计算机上执行“重置设置”。然后再试一次。