При исследовании некоторых модульных тестов, которые терпят неудачу только на моей машине, я заметил, что TextBlock представляет текст по-разному на машинах Windows 7 и Windows 8. Для проверки этого вопроса, я создал пример приложения, содержащего только один TextBlock:Различия между текстовыми блоками WPF между Windows 7 и Windows 8
<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 больше - на самом деле кернинг между «у "и„о“является 1px толще:
Я проверил файлы шрифтов Verdana.ttf на обеих машинах с программным обеспечением чтения шрифта и кернинг между„у“и„о“в списке есть один и такой же: -18.
Также проверены версии .NET Framework, которые также идентичны: 4.5.50709.
... и мне все еще интересно, что вызывает эту разницу?
Возможно, что-то связано с системной темой Windows, так как вы заметите, что другие элементы также отличаются друг от друга между двумя версиями Windows, такими как стиль окна. – Rachel
Пара вещей, которые нужно попробовать: 1. выключить сглаживание шрифтов (необходимо сделать на уровне ОС, видимо, не может быть сделано из WPF). 2. Посмотрите, не изменилась ли разница, когда вы играете с ScaleTransform на TextBlock , – nmclean