簡體   English   中英

SetCompatibleTextRenderingDefault(true)和Graphics.DrawString()文本呈現

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM