可以在Silverlight中使用.eot字体文件吗?

时间:2010-07-31 06:38:44

标签: silverlight fonts embedded-fonts

我试图找出是否可以在Silverlight中使用Embedded Open Type(.eot)文件。我发现older post表示他们不能,但是已经有几年了,考虑到SL的移动速度有多快,我不确定这是否有所改变。

如果是这样,他们将如何使用?作为<Glyph/>对象或......?

2 个答案:

答案 0 :(得分:3)

没有。这是因为Silverlight(如Flash)认为自己是“应用程序”,而不是“文档”。关于font embedding vs. linkingweb fonts这一主题有很多戏。 Silverlight错误地使用“embed”这个词实际上是“链接”。

与任何好的技术一样,有可能对EOT文件进行逆向工程 - 这些安全人员使用IE进行了操作:Reverse Engineering the Embedded OpenType Decompression。我不认为在任何方面都是非法的,因为压缩/解压缩是在http://www.w3.org/Submission/2008/SUBM-MTX-20080305/上向W3C提交的(尽管它可能会使字体代工厂有点生气)。或许你可以看看这个ttf-to-eot转换器并反过来:http://code.google.com/p/ttf2eot/

无论如何,如果你想沿着这条路走下去,你还有很多工作要做。

答案 1 :(得分:2)

我不这么认为。您可以在Silverilght应用程序中嵌入真正的字体字体。 Expression Blend可以轻松完成,只需选择一种字体,然后勾选“嵌入”框。您当然需要确保符合嵌入应用程序的字体的任何字体许可要求。

通过名为“BlendEmbeddedFont”的自定义构建操作将字体作为压缩资源嵌入到您的dll中,然后在您的应用中将其引用如下:

<TextBlock Text="TextBlock" FontFamily="/SilverlightApplication12;component/Fonts/Fonts.zip#Segoe UI" />