2

在调查一些仅在我的机器上失败的单元测试时,我注意到 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 上的文本长了 1 像素——实际上“y”和“o”之间的字距增加了 1 像素:
区别win7/8

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

4

1 回答 1

1

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

于 2013-08-21T11:39:31.987 回答