2010-08-26 41 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