2016-12-05 4 views
3

Pour l'essentiel, mon application génère différents jeux de caractères sans problème. Il y a, cependant, certains caractères chinois qui rendent bien quand FontSize est 22, mais horriblement quand il est plus petit:La police chinoise ne s'affiche pas correctement à FontSize moins de 22

Chinese strings

Cela a été rendu par la pièce suivante de XAML, qui fonctionne à la fois WPF et UWP, avec les mêmes résultats problématiques:

<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> 

Les deuxième et quatrième lignes montrent comment la chaîne est supposée regarder; le premier et le troisième montrent des versions brouillées.

La réponse à this somewhat related question suggère de définir FontFamily="SimSun", ce qui entraîne effectivement l'affichage correct des éléments. Mes options, puis, semblent actuellement:

  • Modifier la famille de polices de la valeur par défaut "Segoe UI" à "SimSun"
  • Augmenter la taille de la police de 15 à 22

Aucune de ces options est attrayant. Est-ce que quelqu'un a d'autres suggestions? Ou une explication pour pourquoi ces caractères particuliers sont si gênants?

Répondre

1

Turns out FontWeight="Light" le tour est joué:

enter image description here

Medium, Normal et SemiLight tous échouent. Light, SemiBold, Thin, Bold, ExtraBold, Black, ExtraBlack et ExtraLight résoudre tous le problème.

Si quelqu'un qui connaît ce domaine a quelque chose à apporter, je suis toujours intéressé, car je n'ai aucune idée de ce qui cause ce comportement.