【问题标题】:Using a XAML font family breaks some Unicode glyphs使用 XAML 字体系列会破坏一些 Unicode 字形
【发布时间】:2015-05-11 23:25:03
【问题描述】:

我正在尝试在没有任何特定属性的 XAML TextBlock 中显示各种 Unicode 字符:

<TextBlock Text="{Binding MyString}" Foreground="Black" />

这适用于我的 Windows 8.1 系统上的所有脚本,表情符号字符除外:

由于这些符号在 Segoe UI Symbol 字体中可用,我只是将其添加到FontFamily

<TextBlock Text="{Binding MyString}" Foreground="Black"
           FontFamily="Segoe UI Symbol" />

但是,现在一些西里尔符号被破坏了:

所以我尝试启用几种字体,包括composite fonts listed on MSDN:

<TextBlock Text="{Binding MyString}" Foreground="Black"
           FontFamily="Lucida Sans Unicode, Lucida Grande, Segoe UI Symbol,
                       Open Sans, Arial, Microsoft Sans Serif, Tahoma,
                       Courier New, Times New Roman, Global User Interface,
                       Portable User Interface" />

但我得到完全相同的结果:

我该如何解决这个问题? 全局用户界面难道不应该给我一个适合所有角色的后备方案吗?当我不指定 FontFamily 时,我的 TextBlock 可以使用什么?

【问题讨论】:

    标签: c# xaml unicode fonts


    【解决方案1】:

    我终于设法修复它。看来:

    • Segoe UI 除了需要Segoe UI Symbol
    • Segoe UI Symbol 会弄乱一些字符,后面的字体就不会用了;因此它应该移到最后

    以下字符串有效,现在我的所有字形都得到了渲染:

    <TextBlock Text="{Binding MyString}" Foreground="Black"
               FontFamily="Segoe UI, Lucida Sans Unicode, Lucida Grande,
                           Open Sans, Arial, Microsoft Sans Serif, Tahoma,
                           Courier New, Times New Roman, Global User Interface,
                           Portable User Interface, Segoe UI Symbol" />
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-12
      • 1970-01-01
      • 2021-07-26
      • 2019-07-06
      • 2014-03-11
      • 1970-01-01
      相关资源
      最近更新 更多