.net - 为什么我得到正方形而不是文本?

标签 .net wpf fonts font-family

我试图在我的 WPF 应用程序中安装和使用字体,但我得到的只是这样:
enter image description here

这是我尝试使用该字体的代码:

richtext1.FontFamily = "SH_Roq'a";

预期结果是:(来自 MS Word 的快照)
enter image description here

如果我尝试将字体文件添加到项目文件夹中,并将其用作资源,如下所示:
richtext1.FontFamily = "./#SH_Roq'a";

我不会得到方形结果,但是,我也不会有预期的字体!我得到的是 Tahoma 字体:

enter image description here

不是目标字体,请下载目标字体文件here用于实验

任何帮助表示赞赏!

编辑

上面捕获的文本的纯文本是:
تفاح احمر

所以对于那些使用字体的专家来说,他们可以尝试一下。

最佳答案

字体有几个问题:

  • 它不是 Unicode 编码的:它使用平台 ID 3、编码 ID 0 的 cmap 子表,也称为“符号”表。在旧式 Windows 桌面应用程序之外,这些通常不能很好地工作。
  • 没有 OpenType 布局功能(GSUB、GPOS 等)对于正确塑造阿拉伯语/乌尔都语/波斯语写作(初始、中间、最终、孤立形式;lam-alef 连字等)至关重要。
  • 它使用一个非常非常旧的 OS/2 表(版本 0)。某些 Microsoft 技术至少需要版本 1。在该表的 fsSelection 字段中还设置了保留位以及许多其他可疑设置。

  • 我不再看那里了。这种字体似乎是用非常古老的工具构建的,使用了过时的字体构建知识。它需要大量更新才能在现代环境中正常工作。

    关于.net - 为什么我得到正方形而不是文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10998750/

    相关文章:

    c# - 选中时更改 WPF 的 ListBoxItem 背景并且窗口失去焦点

    java - 将 FreeType 字体传递给 LibGDX 中的 Assets 加载器

    c# - 将某人的本地时间转换为 UTC 时间

    wpf - 将 UserControl 的 datacontext 设置为在父 View 模型中定义的 ViewModel

    c# - 在 Entity Framework 和 Linq to Entities 中使用规范模式和表达式

    c# - 为什么 Visual Studio 的设计器与我在运行时看到的不匹配?

    javascript - 使用其 id 更改对象的字体系列

    java - 需要一种缩放字体以适合矩形的方法

    c# - 如何获取表单的截图

    c# - 无法将参数值从SqlParameter转换为String