我使用graphics.MeasureString方法来测量文本大小。并且根据测量的文本大小,我使用graphics.MeasureString绘制字符串。但是我正在使用StringFormat来测量和绘制字符串。但我在一些文本中发现文字剪辑问题,如“左”。
请在下面找到代码段,
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);
请在下面的屏幕截图中找到文字剪辑,
您能否建议如何解决此问题?
答案 0 :(得分:0)
尝试以下方法。我已从代码中删除了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));
<强> EDIT1 强>
我根据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);