XP系统下WPF程序字体大小不一的问题

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了XP系统下WPF程序字体大小不一的问题相关的知识,希望对你有一定的参考价值。

在WIN7下正常,但到了XP下就纠结了
很多字体(20%)以上都出现这种情况,
类似图片中的

高度不一致,
是字体的问题还是我哪里设置不对呢?
按钮中、文本框、textblock都会有这种现象。
求解,急,谢谢!

字体的问题可能性比较大,有些是语言区域设置的问题,比如操作系统是英文版+中文版MUI

可以试试
1、安装个雅黑字体,改用雅黑
2、到控制面板->管理工具->服务中,找到Windows Presentation Foundation Font Cache服务,停掉,然后到目录C:\Documents and Settings\LocalService\Local Settings\Application Data下删除FontCache3.0.0.0.dat文件,再重新启动Windows Presentation Foundation Font Cache服务
参考技术A 把字体设置成宋体试试

WPF:字体(大小)在 XP 和 Vista/7 上呈现不同

【中文标题】WPF:字体(大小)在 XP 和 Vista/7 上呈现不同【英文标题】:WPF: font (size) renders differently on XP and Vista/7 【发布时间】:2011-05-16 21:29:32 【问题描述】:

代码非常简单:

<TextBlock TextAlignment="Center" Text="Binding TimeAgo" Foreground="White" FontSize="12" FontFamily="Calibri" Background="Transparent"/>

据我所知,WPF 原生支持 Calibri 字体。但是,字体在 XP 和 Vista/7 上的呈现方式不同:

经验:

远景:

我的主要问题是字体大小(在 XP 上渲染得更大),因为我有专门的、有限的文本空间。

我目前正在使用 UseLayoutRounding="True" 但删除它并没有任何区别。我也在用:

<ResourceDictionary Source="/PresentationFramework.Aero, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml" />

但删除它也没有任何区别(就字体大小而言)。

【问题讨论】:

XP和7在同一台机器上吗?如果是,它们是否使用相同的分辨率? Vista SP2 @ 1920x1200,XP SP3 @ 1280x1024。两者都在运行 .NET v4 【参考方案1】:

WPF 本身不支持任何字体,只能使用机器上安装的字体。

较大的文本不是 Calibri(对我来说它看起来像 Arial 或 Tahoma),你可以看看“g”的形状,看看它们不是同一种字体。

如果您或其他软件(如 Office 2007 或更高版本)首先安装了 Calibri,您只能在 XP 上使用它。

【讨论】:

很好地发现了“g”的形状。我完全错过了。 哦,有没有一种简单的方法可以将它包含在其余的程序集中? @tutipute - 通常你必须购买许可证才能在你的应用程序中分发字体(即使它只用于你自己的应用程序),如果你有权利,我不知道关于 Calibri 的规则要嵌入字体,只需按照以下步骤操作:msdn.microsoft.com/en-us/library/ms753303.aspx 或者如果您想在 Blend 中进行操作:msdn.microsoft.com/en-us/library/cc296385.aspx

以上是关于XP系统下WPF程序字体大小不一的问题的主要内容,如果未能解决你的问题,请参考以下文章

Pycharm中注释代码字体大小不一的问题

eclipse 注释字体不一致的问题

WPF字体质量

在 C# 中更改 ContextMenu 字体大小

微软雅黑字体大小不一?

WPF:在不知道项目的情况下更改组合框的字体大小