【发布时间】:2016-12-06 19:56:18
【问题描述】:
在大多数情况下,我的应用程序可以毫无问题地呈现不同的字符集。但是,有些汉字在FontSize 为 22 时渲染得很好,但在较小的时候就很糟糕:
这是由以下 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”更改为“SimSun”
- 将字体大小从 15 增加到 22
这两种选择都不吸引人。有人有其他建议吗?或者解释一下为什么这些特殊的字符这么麻烦?
【问题讨论】: