我编写了一个WPF用户控件,它使用Tahoma作为字体来显示unicode字符串,这很好。但是,我注意到Tahoma中实际上缺少一些东亚字符,即这种字体不支持所有常见的Unicode字符。
然而,当我显示一个包含一些东亚字母的字符串时,我认为在Tahoma.ttf中缺少这些字母,无论如何都会正确显示该字符,而不是我期望为缺少的unicode字符获取的黑色矩形。
出于好奇:是否有任何回退机制,即Windows 7或C#WPF是否从后备字体中替换丢失的字符?任何人都可以解释这究竟是如何工作的,以及哪种字体实际上被用作后卫?
答案 0 :(得分:4)
请参阅FontFamily
reference的Font Fallback
部分。
答案 1 :(得分:2)
非常感谢H.B.,通过您的关键字,我能够从Microsoft找到这个非常有用的资源,解释了Font Fallback和Font Linking的工作方式:
http://msdn.microsoft.com/en-us/goglobal/bb688134
这是一个很好的引用:
运行Windows XP的用户选择Tahoma字体首先输入英文文本,然后输入希伯来文,然后输入泰卢固文。由于Tahoma是OpenType字体,它提供对拉丁文和希伯来文脚本的支持,但不包含任何泰卢固语字形。 Uniscribe检测到缺少字体支持,并使用其后备字体(即Gautami)自动呈现Telugu脚本。