[英]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.