14

在我处理 SL3/SL4 应用程序并开始使用字体时,我发现缺乏有关字体策略的文档和最佳实践。例如:

  1. 支持的字体集(Arial、Comic Sans MS 等)是否有常见的备用字体?是否有一套关于 Windows 和 Macintosh 系统之间的备用字体的建议?
  2. 是否有 Silverlight 支持的字体(几乎总是)在最终用户系统上,或者像 99.5% 的时间,如“Times New Roman”或“Verdana”,包括 Macintosh?有没有列出此类信息的网站?
  3. 是否有关于考虑 SL 应用程序的 Moonlight (Linux) 视图和 Linux 系统部署/未部署的字体的建议?
  4. 有没有办法在 XAML 或代码隐藏中确定最终用户的系统上是否有支持的字体?我希望它在输入时运行,然后根据发现更改 XAML 以支持正确的字体或允许加载嵌入的字体。
  5. 在支持字体的文档中,它列出了一堆字体,“如果本地计算机上可用,Silverlight 文本元素可以使用以下拉丁字体。”。这是否意味着如果我使用不在此列表中的字体,例如“Cooper Black”,并且最终用户 的系统上确实有此字体,他们仍需要下载嵌入在我的应用程序中的字体?

任何可以导致至少上面回答的一些问题的链接或指针将不胜感激。

4

2 回答 2

4

好的,我们开始吧。这些应该让你更接近你想去的地方:

  1. 这与 CSS 相同——您需要考虑“字体堆栈”。这是我在这个主题上看到的最好的页面之一:CSS 字体堆栈指南:技术和资源
  2. 此链接来自 2007 年 11 月,但它仍然有一个很好的列表:Linux、Mac 和 Windows 中预装字体的完整指南
  3. #2 中的链接是相同的——它涵盖了 Linux。
  4. 不确定这个。对不起 :-(
  5. 我相信这是正确的,Silverlight 只在最终用户系统上寻找它本机支持的字体。否则,它将需要下载字体。
于 2010-03-03T19:15:29.733 回答
2

我认为您应该使用MEF(将包含在即将推出的 Microsoft .NET Framework 4 的 CLR 中)将ApplicationFonts 拆分为不同的包。因此,根据用户操作系统,它应该加载您需要嵌入的不同字体包。

于 2010-02-05T18:57:35.780 回答