繁体   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