![](/img/trans.png)
[英]How to convert a string date without zero padding and separator to DateTime
[英]How to draw a string without padding
我正在使用GraphicsPath.AddString()
函數,但它在文本周圍留有一些空白。 任何想法如何繪制字符串而無需填充,僅繪制文本路徑?
我的代碼是這樣的:
GraphicsPath gp = new GraphicsPath();
gp.AddString(text, font.FontFamily, (int)font.Style, font.Size,
boundsRectangle, format);
g.DrawPath(pen, gp);
發生了什么,可能是從文檔中使用了Graphics.MeasureString():
GDI +在顯示的每個字符串的每一端添加少量(1/6 em)。 這個1/6 em允許>帶有懸垂末端的字形(例如斜體“ f”),並且還給GDI +少量的回旋余量,以幫助擴展網格擬合。
DrawString的默認操作將在顯示相鄰運行時對您不利:
首先,默認的StringFormat在每個輸出的每一端添加一個額外的1/6 em。 其次,當網格擬合的寬度小於設計的寬度時,允許字符串最多收縮一個em。 為避免這些問題:
始終根據版式> StringFormat(GenericTypographic)將MeasureString和DrawString傳遞給StringFormat。 將圖形TextRenderingHint設置為TextRenderingHintAntiAlias。 該渲染方法使用抗鋸齒和子像素字形定位來避免網格擬合的需要,因此固有地與分辨率無關。
因此,看起來您應該能夠使用正確的StringFormat修復此問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.