【发布时间】:2011-07-28 09:15:24
【问题描述】:
如果已安装,我们的设计更喜欢使用 Century Gothic,但如果不可用,则回退到 Arial 或 Lucidia。这在大多数情况下都可以正常工作,除非机器没有安装 Century Gothic,但确实有 Century(这似乎是很多没有 Office 的 XP 机器)。 “很有帮助”,它用可怕的衬线字体 Century 代替了 Century Gothic,并且完全忽略了我们的后备字体。
通过使用 Century 而不是 Century Gothic 的机器很容易重现,然后创建一个 TextBlock,例如:
<TextBlock FontFamily="Century Gothic, Wingdings">Should be gibberish</TextBlock>
它应该显示为胡言乱语的 Wingdings,但它却显示为丑陋但可读的世纪。
我尝试将 Century Gothic 包装在一种复合字体中,但这也有同样的问题:
<FontFamily
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/composite-font"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:System="clr-namespace:System;assembly=mscorlib">
<FontFamily.FamilyNames>
<System:String x:Key="en-US">CenturyGothic</System:String>
</FontFamily.FamilyNames>
<FontFamily.FamilyTypefaces>
<FamilyTypeface Weight="Normal" Stretch="Normal" Style="Normal" />
<FamilyTypeface Weight="Bold" Stretch="Normal" Style="Normal" />
</FontFamily.FamilyTypefaces>
<FontFamily.FamilyMaps>
<FontFamilyMap Target="Century Gothic" Scale="1" />
</FontFamily.FamilyMaps>
</FontFamily>
嵌入字体不是一种选择(许可) - 有什么方法可以强制它忽略 Century,还是我只能将其更改为使用不同的字体?
编辑:我刚刚尝试过使用 FontFace="'Century Gothic',Wingdings" 但它永远不会显示 Century Gothic,即使它已安装。
【问题讨论】:
-
我不知道,但字体选择模型在 PDf 中的blogs.msdn.com/b/text/archive/2007/04/23/… 中进行了概述。不过,这可能没有多大帮助,我只是想看看它,眼睛就呆滞了。