WPF字体:为什么有些字符缺失?

Cha*_*les 5 wpf fonts textbox

我正在编写一个WPF应用程序,我使用的字体只有在WPF中运行时出现问题 - 它可以在其他任何东西(记事本,wordpad等)中使用它.WPF的问题在于它有时会回归到另一种字体."有时"是指只有字符[a-zA-Z]才能正确呈现 - 其他所有内容都会呈现为默认的TextBox字体.

有谁知道WPF是否对它支持的字体有某种限制?它几乎似乎是WPF中的错误 - 字体在其他任何地方都可以正常工作.

我正在尝试使用的字体是"Scramble"TTF字体(http://famousfonts.smackbomb.com/fonts/scrabble.php).

数字和空格应该被视为空白的Scrabble/Scramble图块,但数字本身会出现在我正在使用的文本框中.

我正在使用的代码:

<TextBox Text="Testing testing testing" FontFamily="Fonts/#Scramble" />
Run Code Online (Sandbox Code Playgroud)

还有其他人经历过类似的事吗?

任何建议都会摇滚!

谢谢!

Gal*_*boy 8

来自MSDN:

字体后备

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

  • 客户端应用程序指定的字体在系统上不存在.
  • 客户端应用程序指定的字体不包含呈现文本所需的字形.

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

WPF字体回退机制取代了以前的Win32字体替换技术.

我的猜测是字体不支持Unicode - 字体本身是在1996年创建的,因为它打算模仿Scrabble片段,我不确定字体作者是否考虑过本地化.

编辑 根据字体文档,字体支持字母,任何数字应该呈现空白图块.空格不会渲染图块.

  • 哦,来吧.有人得到一个比这更好的答案...我会很尴尬从MSDN获得复制/粘贴的赏金,甚至没有完全回答这个问题...:\ (3认同)