2
在調查一些僅在我的機器上失敗的單元測試時,我注意到TextBlock在Windows 7和Windows 8機器上呈現的文本不同。 要檢查這個問題,我創建了一個包含只是一個TextBlock的示例應用程序:Windows 7和Windows 8之間WPF的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(例如窗口樣式)之間的其他元素也看起來不同。 – Rachel 2013-04-24 20:13:24
有兩件事要嘗試:1.關閉字體平滑(需要在操作系統級別完成;顯然不能從WPF完成)2.當您在TextBlock上使用ScaleTransform時,看看它們之間的差異是否一致。 – nmclean 2013-08-21 11:53:44