По большей части мое приложение создает различные наборы символов без проблем. Есть, однако, некоторые китайские символы, которые делают хорошо, когда FontSize
есть 22, но ужасно, когда он меньше:Китайский шрифт неправильно отображается на 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
Ни вариант является привлекательным. Есть ли у кого-нибудь другие предложения? Или объяснение того, почему эти персонажи настолько неприятны?