2010-08-26 47 views
1

我正在为使用SetCompatibleTextRenderingDefault(true)(强制.net 1.1文本呈现样式)的应用程序编写C#(ActiveX)插件。该设置会使我输出的一些文本Graphics.DrawString()导致它看起来有点模糊和粗体。与个别控件不同,Graphics类和BitMap均不具有UseCompatibleTextRendering属性,可用于覆盖个别行为。想要了解我正在绘制的文字没有被破坏的地方有什么特别之处,我还有什么可以做的吗?SetCompatibleTextRenderingDefault(true)和Graphics.DrawString()文本呈现

我的插件适用于的应用程序属于第三方,因此仅仅更改SetCompatibleTextRenderingDefault称它对我造成伤害不是一种选择。

编辑:'特殊'的东西似乎是背景的颜色,以及它如何影响所使用的抗锯齿;所以摆弄我如何设置矩形来解决它似乎不是一个选项。

回答

1

我通过将TextRenderingHint更改为SingleBitPerPixelGridFit,发现我的问题的修复程序,这是未使用兼容文本呈现时的默认设置。当它被设置为true时,它使用ClearType枚举,不同之处在于,与普通的cleartype文本不同,结果是丑陋的,并且非常难以阅读。

textGraphics.TextRenderingHint = 
      System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit; 
2

我建议使用TextRenderer.DrawText而不是Graphics.DrawString - 即使禁用兼容文本呈现,它似乎也会产生更清晰,更一致的结果。

+0

DrawString选择一种颜色? – 2010-08-26 14:22:25