2016-12-05 74 views
3

大部分情況下,我的應用程序呈現不同的字符集沒有問題。有,但是,某些中國的字符渲染罰款時,FontSize是22,但可怕的,當它是小:中文字體在FontSize小於22處呈現不正確

Chinese strings

這是通過下面這段XAML,它同時適用於WPF和UWP呈現,同樣有問題的結果:

<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
     <RowDefinition Height="Auto" /> 
    </Grid.RowDefinitions> 
    <TextBox x:Name="textBox" Grid.Row="0" FontSize="21" Text="〾⿰⿱⿲⿳⿴⿵⿶⿷⿸⿹⿺⿻" /> 
    <TextBox Grid.Row="1" FontSize="22" Text="{Binding Text, ElementName=textBox}" /> 
    <TextBlock Grid.Row="2" FontSize="21" Text="{Binding Text, ElementName=textBox}" /> 
    <TextBlock Grid.Row="3" FontSize="22" Text="{Binding Text, ElementName=textBox}" /> 
</Grid> 

第二行和第四行顯示字符串應該如何查找;第一個和第三個顯示亂碼。

this somewhat related question的回答建議設置FontFamily="SimSun",這確實會導致事情正確顯示。我選擇的話,目前似乎是:

  • 更改字體系列從默認「的Segoe UI」爲「宋體」
  • 增加15字體大小爲22

無論選項很有吸引力。有沒有人有其他建議?或者解釋爲什麼這些特殊角色非常麻煩?

回答

1

原來FontWeight="Light"的伎倆:

enter image description here

MediumNormalSemiLight全部失敗。 Light,SemiBold, Thin,Bold,ExtraBold, Black,ExtraBlackExtraLight都解決了這個問題。

如果有人對這方面的知識有所貢獻,我仍然感興趣,因爲我不知道是什麼導致了這種行爲。