[英]SetCompatibleTextRenderingDefault(true) and Graphics.DrawString() text rendering
我正在为使用SetCompatibleTextRenderingDefault(true)
(强制.net 1.1文本呈现样式)的应用程序编写C#(ActiveX)插件。此设置使我用Graphics.DrawString()输出的某些文本SetCompatibleTextRenderingDefault(true)
导致其看起来有些脏污,加粗。 与单独的控件不同, Graphics
类和BitMap
具有UseCompatibleTextRendering
属性, UseCompatibleTextRendering
属性可用于覆盖单独的行为。 没办法摆弄一下,想弄清楚我正在绘制的文字不乱的地方有什么特别的办法吗?
我的插件所针对的应用属于第三方,因此仅更改SetCompatibleTextRenderingDefault
我造成的SetCompatibleTextRenderingDefault
调用是SetCompatibleTextRenderingDefault
的。
编辑:“特殊”的东西似乎是背景的颜色以及它如何影响使用的抗锯齿; 所以通过我设置矩形的方式来修复它似乎不是一个选择。
我建议使用TextRenderer.DrawText
而不是Graphics.DrawString
即使禁用兼容的文本呈现,它似乎也会产生更清晰,更一致的结果。
我通过将TextRenderingHint
更改为SingleBitPerPixelGridFit
找到了解决此问题的方法,这是不使用兼容文本呈现时的默认设置。 相反,将其设置为true时,它将使用ClearType枚举,但出于某种原因,它不同于普通的cleartype文本,其结果很难看而且很难读。
textGraphics.TextRenderingHint =
System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.