【问题标题】:WPF's TextBlock differences between Windows 7 and Windows 8Windows 7 和 Windows 8 之间的 WPF TextBlock 差异
【发布时间】:2013-04-24 15:19:53
【问题描述】:

在调查一些仅在我的机器上失败的单元测试时,我注意到 TextBlock 在 Windows 7 和 Windows 8 机器上呈现的文本不同。 为了检查这个问题,我创建了只包含一个 TextBlock 的示例应用程序:

<Window x:Class="WpfApplication1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <TextBlock Text="yo" FontSize="100" FontFamily="Verdana" />
    </Grid>
</Window>

您可以看到(或者至少我希望如此)Windows 7 上的文本长了 1px - 实际上“y”和“o”之间的字距增加了 1px:

我使用字体阅读器软件检查了两台机器上的 Verdana.ttf 字体文件,其中列出的“y”和“o”之间的字距相同:-18。
还检查了 .NET Framework 的版本,它们也相同:4.5.50709。
...我仍然想知道是什么导致了这种差异?

【问题讨论】:

  • 这可能与 Windows 系统主题有关,因为您会注意到其他元素在两个版本的 Windows 之间看起来也有所不同,例如窗口样式。
  • 几件事要尝试: 1. 关闭字体平滑(需要在操作系统级别完成;显然不能从 WPF 完成) 2. 看看差异是否仍然一致,当你在 TextBlock 上使用 ScaleTransform。

标签: wpf windows-8 textblock kerning


【解决方案1】:

我宁愿认为这与 ClearType 或抗锯齿有关,Microsoft 会在每个 Windows 版本之间不断更改该代码。不要认为您可以对此做任何事情,只需将这些差异考虑到您的单元测试中即可。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-31
    • 2012-10-11
    • 2012-12-07
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 2011-07-27
    • 2010-10-29
    相关资源
    最近更新 更多