2010-09-11 75 views
1

我有一个WPF应用程序将字体渲染到比我预期的更大的尺寸。WPF Windows程序以大字体显示,但只能在一台PC上显示

问题是只有我写的WPF应用程序似乎有这种效果,而且问题只发生在一台计算机上。我写的所有WPF程序(不只是一个)都会发生这种效果,所有窗口都会显示效果。

我使用Visual Studio 2008和.NET 3.5 SP1;所有使用WPF编写的程序。
操作系统是带有最新服务包的Windows XP。
屏幕分辨率为1680x1050。
使用Windows XP风格的Windows和按钮。
字体大小为正常。
DPI设置是正常尺寸(96 dpi)。

我在另外两台具有相同操作系统和设置的计算机上测试了我的应用程序,它看起来很好。我的程序在几十台其他计算机上运行,​​但我没有看到这个问题。

这里是一个看起来不错的窗口:
alt text

这里是显示问题的窗口(注意左下角的按钮,字体大小):
alt text

我知道我可以增加宽度并添加边际来弥补,但我需要理解为什么发生这种情况。 我接近发布,我想确保我的用户看不到这种效果。

所有的想法赞赏。

+1

计算机是否有可能使用任何种类的“易于访问”(例如,设置来帮助视力不好的人,我不确定他们在XP上称它为何,在Win 7上它是在控制面板“Ease访问中心“ – Robaticus 2010-09-11 20:58:02

回答

3

我目前没有运行XP,但我认为你可以通过显示属性自定义窗口标题(和按钮)中出现的文本的大小(右键单击桌面,选择属性,它是第3个或第4个标签,我认为)。它可以让你选择所选项目的颜色,窗口的背景颜色等。

这将与设置DPI设置分开。

+1

是 - 有一个”字体大小“下拉菜单,选项为”正常“,”超大“和”大“(按此顺序)。 – ChrisF 2010-09-11 21:42:08

+0

打开显示属性,第4个选项卡(外观)将字体大小从普通字体改为大字体并单击应用,然后更改回普通并单击应用。现在一切都很好。感谢帮助。 – Zamboni 2010-09-12 00:37:27

3

这看起来像一个邪恶的XP功能。它可以选择独立于视频适配器DPI设置更改系统字体的大小。对于居住在Easy Asia的XP用户非常方便,这些字母的字形非常复杂,需要所有像素以使其脚本清晰易读。

它由具有Form.AutoScaleMode属性的Windows窗体覆盖,该属性默认为Font而不是Dpi。然而,WPF强烈偏向Dpi,这是正常的缩放方式。

我不认为这两个人会见面。告诉您的用户重置XP设置。它被隐藏在控制面板+显示设置的某个位置,我不再拥有它来告诉你究竟在哪里寻找。或者是逻辑替代方法,更改视频DPI设置以匹配字体大小。这是在IIRC的适配器选项卡中。将其从96改为120 DPI将是一个很好的猜测。

+0

在这种情况下,将DPI从96更改为120并没有任何区别,但感谢您提供的信息。 – Zamboni 2010-09-12 00:34:17

+0

看起来你发现我正在谈论的系统字体大小设置。当您更改DPI时,在WPF窗口中看不到任何区别是不健康的。 – 2010-09-12 09:26:01