我想我错过了一些基本的东西。如果可以的话,请告诉我它是什么。
我使用 VS2008 开发了一个小的 C++ WinForms 应用程序。所以它是使用 .NET 3.5 SP1 构建的。我的开发箱是 Win7,如果这很重要的话。
在这个版本的 VStudio 中,WinForms 控件中 UseCompatibleTextRendering 属性的默认值为 false。这对我来说应该不重要,我不认为。我没有任何自定义绘制的文本或控件。
该应用程序在我的 Win7 机器上运行良好。
如果我将它打包(沿 .NET 3.5 拖动)并将其安装在我们的 WinXP 桌面之一上,按钮和标签看起来不太好;文本在其中被截断。
如果我将 UseCompatibleTextRendering 设置为 true,然后在 XP 框上运行它,则文本适合按钮和标签。
我的问题是:为什么?安装将 .Net 3.5 放在 XP 盒子上,所以应用程序应该能够找到并使用正确版本的 WinForms,对吧?
我应该注意到,在我将我的应用程序 + .NET 3.5 放在这些盒子上之前,它们根本没有 .NET。他们没有自动获得 Microsoft 更新;我们的 IT 人员负责修补和升级。
[ 这种事情以前在我创建的应用程序中发生过。它们在工程机器上看起来/工作得很好,因为我们维护这些,而且它们大部分都有最新的东西。当它们在企业机器上运行时,它们通常不运行并且需要安装 VCredist。]
回到手头的问题:UseCompatibleTextRendering 设置为 false 时文本看起来更好,所以如果可以的话,我宁愿保持这种状态。我想了解那些使文本不合适的 XP 框可能缺少的内容。
谢谢
小号