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