【问题标题】:♥ character displayed incorrectly in Glyphs♥ 字符在 Glyphs 中显示不正确
【发布时间】:2012-03-05 08:33:35
【问题描述】:

我正在使用 Glyphs 类在 Windows Phone 7 应用程序中显示文本。文本中有 ♥ 字符,未显示。显示了缺少字符的常用 unicode 空矩形。 相同的字符串在 TextBlock 中正确显示,如果我调试并查看 Glyphs 对象的 UnicodeString 属性,则 ♥ 符号会在监视窗口中正确显示。

可能是什么问题?我找不到有关该主题的任何信息。

更新:我正在使用 Segoe WP 字体 (SegoeWP.ttf)。我尝试将此符号复制粘贴到 Word 文档中,如果我尝试将其字体设置为 Segoe WP,它会自动更改回 Arial(许多其他字体也会发生同样的情况,例如 Tahoma、Verdana 等)。但是,如果我将它的字体设置为 Segoe UI 或 Segoe Symbol,它会切换到那个,并且心形符号的外观也略有变化。

是否有可能 Segoe WP 字体中缺少此符号,但它包含在 Segoe UI 和 Segoe Symbol 中?如果是这样,为什么它可以在 TextBlock 中正常工作?不是在 Windows Phone 上使用 Segoe WP 吗?

【问题讨论】:

    标签: c# silverlight windows-phone-7


    【解决方案1】:

    its documentation 中的 Glyphs 类声明:

    不支持字体回退,指定字体文件必须支持所有字符。

    文档建议在没有特别处理布局和替换问题的情况下使用 TextBlock。

    【讨论】:

    • 该限制仅适用于没有 Indices 属性的字形,但我提供了索引。我目前的怀疑是我使用的字体文件(Segoe WP)不包含这个符号(问题中有更多细节)。
    • TextBlock 为您进行字体替换,不,该字体没有该代码点的字形。
    • 我接受了答案,基本问题是如果缺少符号,Glyphs 不会回退到另一种字体。我的解决方案是更改字体系列(从 Segoe WP 到 Segoe UI),另一个解决方案 - 如果适用 - 将切换到 TextBlock,但是,在我的情况下这是不可能的。
    【解决方案2】:

    我将 Glyphs 的字体文件从 Segoe WP 替换为 Segoe UI,它解决了问题。这让我很惊讶,因为我认为 Windows Phone 默认使用 Segoe WP。它似乎没有,或者至少不是使用 Visual Studio 2010 安装到 C:\Windows\Fonts 中的版本(或者当它发现丢失的符号时它会回退到 Segoe UI 或 Symbol)。

    (有没有办法直接从 WP7 设备获取 ttf 字体文件?)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-10-16
      • 2012-01-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-24
      相关资源
      最近更新 更多