我使用自定義繪圖在WinForms應用程序中繪製字符串。經典Graphics.DrawString方法用於如下:Graphics.DrawString:統計在矩形中有效顯示的字符數
g.DrawString(text, font, brush, rect, stringFormat);
輸出字符串text
可以由矩形rect
被剪切,我需要算上rect
完全可見的字符數。如何使用.NET Framework內置工具來做到這一點?
請不要使用其他方法輸出文本。我需要爲GDI + Graphics.DrawString解決這個任務。
UPDATE:是的,當然,我可以在一個循環中,我總結從字符串的開頭每個字符的寬度用Graphics.MeasureString,但我需要在WinAPI的DrawText東西更高效像DT_MODIFYSTRING
標誌功能。
此外,Graphics.MeasureString
不能正確計算所需的寬度。富勒更多信息,請參閱這篇文章:
http://www.codeproject.com/Articles/2118/Bypass-Graphics-MeasureString-limitations
您是否熟悉Graphics.MeasureString? https://msdn.microsoft.com/en-us/library/6xe5hazb(v=vs.110).aspx – Biscuits
@Biscuits,你是否熟悉與Graphics.MeasureString相關的問題?例如,參見[this](http://www.codeproject.com/Articles/2118/Bypass-Graphics-MeasureString-limitations)。看來,我們需要使用[StringFormat.SetMeasurableCharacterRanges](https://msdn.microsoft.com/en-us/library/system.drawing.stringformat.setmeasurablecharacterranges(v = vs.110).aspx)進行更精確的計算。 – TecMan