Tag: privatefontcollection

Mono PrivateFontCollection.AddFontFile错误的解决方法

当我在Mono.net中调用PrivateFontCollection.AddFontFile方法时,它总是返回一个标准的font-family。 这个bug已经在几个网站上报道,但据我所知,没有办法解决它。 错误本身尚未在Mono-libraries中修复。 它有什么解决方法吗? 编辑:作为对henchman的回答的反应,我将发布代码: PrivateFontCollection pfc = new PrivateFontCollection(); pfc.AddFontFile(“myFontFamily.ttf”); myFontFamily = pfc.Families[0x00]; Font myFont = new Font(myFontFamily,14.0f); 我知道这个代码在Microsoft.Net框架上运行正常,但是当在Mono上执行时,它只是给出了一个标准的字体系列(我认为它是Arial),其名称为myFontFamily.ttf

如何将privatefontcollection内存中的字体呈现为可编辑的控件

这是将资源从资源加载到PrivateFontCollection导致损坏的延续 这里提供的答案足以用于具有UseCompatibleTextRendering方法的控件,但是它似乎不适用于其他常见控件,其中文本是主要焦点,例如: 列表显示 文本框 RichTextBox的 combobox … 还有很多… 我已经尝试过这里的信息,这些信息基本上是用Program.cs的Application.SetCompatibleTextRenderingDefault行进行的(没有人澄清默认情况下这个设置在哪里,所以我在这里记录它)。 我还玩过Telerik,DevExpress和Infragistics文本控件,除了Telerik之外没有内置兼容文本渲染的能力.Teleriks控件有这个方法,但它没有效果,包括无法将forecolor设置为存储的内容在属性(一个不同的动物,只是注意到Telerik radTextBox控件的毛刺)。 似乎无论我如何切片,任何对文本实际有用的控件都不会使文本正确显示正方形字符,如上面提到的原始post所示。 综上所述 : 字体从资源加载到内存到PrivateFontCollection 应用程序不会崩溃 成功在标签上使用相同的字体(UseCompatibleTextRendering对它们起作用) – 在同一个表单上,在同一个项目中。 受此(新?)问题影响的控件严格来说是任何可以“键入”的控件,如TextEdit,ListView,RichText,Combo等。 当谈到切换,玩弄或玩耍时 – 这意味着我已经尝试了所提供的所有控件和/或代码的所有可能组合。 例如: Application.SetCompatibleTextRenderingDefault本身只有3种可能的组合。 (true) (false)或完全省略。 在完成这3个组合之后,我继续进行(基本故障排除,但我发现有必要解释所有基础)添加Telerik控件,然后尝试Telerik控件中的所有组合,以及Application.SetCompatibleTextRenderingDefault所有组合Application.SetCompatibleTextRenderingDefault命令。 测试的数量是指数级的,即渲染可能性的可能组合的数量乘以尝试的控制的数量乘以每个控件具有的渲染控制的可能性的数量,等等。

如何删除PrivateFontCollection.AddFontFile的文件?

我们为短期使用创建了大量字体。 字体嵌入在文档中。 如果不再使用,我想删除字体文件。 我们应该怎么做? 以下简化代码不起作用: PrivateFontCollection pfc = new PrivateFontCollection(); pfc.AddFontFile(fontFile); FontFamily family = pfc.Families[0]; Console.WriteLine(family.GetName(0)); family.Dispose(); pfc.Dispose(); GC.Collect(); GC.WaitForPendingFinalizers(); File.Delete(fontFile); 删除文件失败,因为文件已被锁定。 我还能做些什么来释放文件锁? PS:在我们使用AddMemoryFont之前。 这适用于Windows 7.但是在第一个FontFamily处理后,使用Windows 8 .NET时使用了错误的字体文件。 因为每个Document都可以包含其他字体,所以我们需要非常多的字体,并且不能保存对所有字体的引用。