【问题标题】:Can you use a regular URL to create a new font family in WPF您可以使用常规 URL 在 WPF 中创建新的字体系列吗
【发布时间】:2016-08-30 17:52:44
【问题描述】:

您好,我想在不下载 ttf 的情况下在 WPF 中使用字体。 FontFamily 类的文档暗示我可以使用 http 地址作为字体的基本 Uri,但它似乎不起作用,我在任何地方都找不到任何工作示例来说明如何做到这一点。

所以我的代码看起来像这样

var newFont = new FontFamily(new Uri("http://myfontservice/myFont.ttf#myFont"), "myFont");

这是我尝试过的最复杂的 Uri。我还尝试了很多关于字体名称使用的变体,但似乎没有任何效果。

任何帮助将不胜感激。 谢谢

编辑 另外值得注意的是,字体服务只是机器上的一个文件夹,它已通过 IIs 公开。所以字体以 ttf 文件的形式存在,如果在浏览器中使用 URL,则会下载 ttf 文件。

【问题讨论】:

  • 您收到任何错误吗?
  • 没有没有错误,只是字体不是预期的字体。我可以使用 URL 并毫无问题地获取 ttf 文件。

标签: c# wpf font-family


【解决方案1】:

这不可能如你所愿。根据the MSDN

网站来源字体: WPF 应用程序不允许对 http 或 ftp 统一资源标识符 (URI) 的字体引用。

我想唯一的希望是将它下载到一个临时文件并使用file:// URI 来加载它

【讨论】:

  • 谢谢,不幸的是 PrivateFontCollection 不适用于 WPF,因为它使用 system.drawing.FontFamily 而不是 system.windows.media.FontFamily。
  • @Kezza 你确实是对的......好吧,你可以将TTF 下载到一个临时文件,然后在构造函数上使用file:// URI。如果你不能写临时文件,我看不出有什么办法(我已经更新了答案)
  • 是的,我想这就是我必须要做的。希望避免写入文件系统。
  • @Kezza 这可能是半生不熟的 WPF 中缺少的许多东西之一:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-06-26
  • 1970-01-01
  • 2010-12-11
  • 2020-11-17
  • 1970-01-01
  • 2020-06-10
  • 1970-01-01
相关资源
最近更新 更多