2016-12-05 15 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» в «SimSun»
  • Увеличить размер шрифта от 15 до 22

Ни вариант является привлекательным. Есть ли у кого-нибудь другие предложения? Или объяснение того, почему эти персонажи настолько неприятны?

ответ

1

Оказывается FontWeight="Light" делает трюк:

enter image description here

Medium, Normal и SemiLight все потерпеть неудачу. Light, SemiBold, Thin, Bold, ExtraBold, Black, ExtraBlack и ExtraLight все решают проблему.

Если кто-нибудь, владеющий знаниями об этой области, может внести свой вклад, мне все же интересно, поскольку я не знаю, что вызывает это поведение.

 Смежные вопросы

  • Нет связанных вопросов^_^