我想我缺少一些基本的东西。如果可以的话,请告诉我这是什么。

我使用VS2008开发了一个小C ++ Winforms应用程序。因此,它是使用.NET 3.5 SP1构建的。如果这很重要,我的开发盒是Win7。

Winforms控件中useCompatibletExtrendering属性的默认值在此版本的Vstudio中为错误。这对我来说并不重要,我不认为。我没有任何自定义的文字或控件。

该应用在我的Win7盒子上看起来不错。

如果我打包(沿.NET 3.5拖动)并将其安装在我们的WinxP台式机上,则按钮和标签看起来不好;文字被切碎。

如果我将UseCompatibletExtrendering设置为True,然后将其运行在XP框上,则文本拟合到按钮和标签中。

我的问题是:为什么?安装在XP框上放置.NET 3.5,因此该应用程序应该能够找到和使用Winforms的正确版本,对吗?

我应该注意,在将我的app + .net 3.5放在这些盒子上之前,它们根本没有.NET。他们没有自动获得Microsoft更新;我们的IT家伙大门贴上补丁和升级。

我创建的应用程序之前已经发生了这种事情。它们在工程机上看起来/工作很棒,因为我们维护这些操作,并且它们大多有最新的东西。当它们在公司框上运行时,通常不运行,需要安装Vcredist。这是给予的

回到手头的问题:useCompatibletextrenderring设置为false,文本看起来更好,所以如果可以的话,我宁愿保持这种方式。我想了解那些使文本不合适的XP框上可能缺少什么。

谢谢

s

有帮助吗?

解决方案

这可能是一个缩放问题,XP计算机可能具有不同的视频适配器DPI设置或不同的系统字体大小。缩放受表单的AutoScalemode的影响以及它们是否“继承”容器控件的字体属性。如果字体属性在属性窗口中不大胆,则可以。

一种快速的方法来检查表格中的扩展是否有效属性:

protected:
    virtual void OnLoad(EventArgs^ e) override {
        this->Font = gcnew System::Drawing::Font(this->Font->FontFamily, 
            this->Font->SizeInPoints * 125 / 96);
    }

那将其缩放。它可能会在XP机器上缩放,使用96/125。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top