2016-12-05 91 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都解决了这个问题。

如果有人对这方面的知识有所贡献,我仍然感兴趣,因为我不知道是什么导致了这种行为。