簡體   English   中英

使用graphics.DrawString方法進行繪制時文本被剪切

[英]Text getting clipped when drawing using graphics.DrawString method

我正在使用graphics.MeasureString方法來測量文本大小。 然后根據測得的文本大小,使用graphics.MeasureString繪制字符串。 但是我當時使用StringFormat來測量和繪制字符串。 但是我在諸如“ left”之類的文本中發現了文本剪切問題。

請在下面找到代碼片段,

string text = "Left";
Font font = new System.Drawing.Font("Segoe UI Semibold", 9F);
StringFormat format = new StringFormat(StringFormatFlags.NoWrap);
SizeF size = e.Graphics.MeasureString(text, font, 100, format);
e.Graphics.DrawString(text, font, new SolidBrush(Color.Black), new RectangleF(10, 10, size.Width, size.Height), format);

請在下面的屏幕截圖中進行繪制時找到文本剪輯,

在此處輸入圖片說明

您能否提出解決此問題的建議?

嘗試以下方法。 我已經從代碼中刪除了StringFormat 有用。

string text = "Left";
Font font = new Font("Segoe UI Semibold", 9F);
//StringFormat format = new StringFormat(StringFormatFlags.NoWrap);
SizeF size = e.Graphics.MeasureString(text, font, 100);
e.Graphics.DrawString(text, font, new SolidBrush(Color.Black), new RectangleF(10, 10, size.Width, size.Height));

編輯1

我已經根據OP的使用StringFormat枚舉的請求修改了答案。

string text = "Left";
Font font = new Font("Segoe UI Semibold", 9F);
StringFormat format = new StringFormat(StringFormatFlags.NoWrap);
SizeF size = e.Graphics.MeasureString(text, font, 100, format);
e.Graphics.DrawString(text, font, new SolidBrush(Color.Black), new RectangleF(10, 10, size.Width + 5, size.Height), format);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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