【发布时间】:2017-12-08 07:27:36
【问题描述】:
嗯,我基本上想将我将在我的 WPF 应用程序中使用的字体集合嵌入。它们存储在我自己的虚拟文件系统(如 WinRAR)中,我只想通过字节数组或内存流加载它们。但是,我还没有找到任何可行的解决方案。我尝试过 PrivateFontCollection,但最后,我意识到 Families 属性适用于 WinForms(System.Drawing.FontFamily 和 NOT System.Windows.Media.FontFamily)。我还将它们分类到操作系统级别是不可能的。
所以问题仍然存在:
如何使用字节数组或内存流加载 System.Windows.Media.FontFamily?
编辑:
这是一个 .ttf 文件(True Type 字体)
【问题讨论】:
-
你看到Packaging Fonts with Applications的文章了吗?
-
是的,但问题是我想将我的字体存储在我自己的文件系统中,而不是将它们存储在应用程序级别(或操作系统级别)中。
-
我正在尝试在我自己的应用程序中实现这一点(托管在 Azure 上的 WebAPI,因此无法在系统上安装字体(我可以找到)),但我被卡住了:在这种情况下,MemoryFonts 是什么,LoadFont 中的 FontFamily() 是如何知道要查看系统字体而不是系统字体的,因为您传递的只是名称?
-
实际上,这对我来说仍然是一件奇怪的事情......虽然,出于某种原因,它有效......我只是不知道如何。我将字体系列的名称传递给字体系列构造函数,它可以识别字体,而无需在操作系统级别安装字体。对于“MemoryFonts”的事情......这是一个变量。请注意我如何向它添加字体 Dictionary
,int 是键,它是我的资源系统上的字体 id,值基本上是 ACTUAL 字体的“加载器”,当然是从函数“加载”加载字体”。 -
添加您的解决方案作为答案,这样这个问题就不会被视为未回答。
标签: c# arrays wpf fonts stream