WPF如何确定哪些字体用于缺少字符?

时间:2018-03-13 08:23:40

标签: .net wpf fonts

我知道WPF的默认字体是Segoei UI。例如,该字体没有中文字符的字形。因此,当用户放置如下文本时,它如何检测应该使用哪种字体来正确呈现它们。它是检查每个字符的范围并查找具有这些字符的字体,还是内部使用包含大多数Unicode字符的某种字体?

Example text containing characters of multiple cultures

1 个答案:

答案 0 :(得分:2)

WPF中的这种机制称为Font Fallback

  

字体回退

     

字体回退是指自动替换客户端应用程序选择的字体以外的字体。调用字体回退有两个主要原因:

     
      
  • 客户端应用程序指定的字体在系统上不存在。

  •   
  • 客户端应用程序指定的字体不包含呈现文本所需的字形。

  •   
     

在WPF中,字体回退机制使用默认回退字体系列"全局用户界面"作为替代字体。此字体定义为复合字体,其文件名为" GlobalUserInterface.CompositeFont"。有关复合字体的详细信息,请参阅本主题中的“复合字体”部分。

(如果您因为想要更改后备字体而询问,则链接文章包含作为WPF一部分的默认后备字体列表以及有关如何手动设置后备字体的说明。)

以下是一些Fonts created by Microsoft for specific charsets

  

Segoe UI包括拉丁语,希腊语,西里尔语和阿拉伯语字符。还有针对其他字符集和用途创建的新字体,也针对ClearType进行了优化。其中包括Meiryo for Japanese,Malgun Gothic for Korean,Microsoft JhengHei for Chinese(Traditional),Microsoft YaHei for Chinese(Simplified),Gisha for Hebrew,Leelawadee for Thai,以及为文档使用而设计的ClearType Collection字体。

Full list of System-Fonts you can use