证明与 - 和 - 左的DrawString右侧的文本(Justify text with Draw

2019-09-17 18:05发布

比方说,我有空间200个像素,我想画两个字符串进去: - 第一个字符串应该是左对齐 - 右第二个字符串应该是右对齐 - 但如果他们不这样做既适合重叠(然后做什么我的字符串.Trimming选项说)

上午我将不得不衡量每手动绘制这个,还是的DrawString有一些方法来支持我想要不我重新发明轮子呢?

试想一下,\ L和\ R的是这样做逃逸,那么我可以说,

graphics.Drawstring("\lfirst\rsecond", ...);

我会风与像

"first              second"

至少这是想什么,我有发生(我知道\ L和\ r不存在)。 有没有办法?

Answer 1:

我忽略了你的标志,而是我展示你(大约)你怎么可以对齐文本。 这是很容易挑选出你的文字,将它和借鉴它作为两个单独字符串!

string text2 = "Use TextFormatFlags and Rectangle objects to"
 + " align text in a rectangle.";

using (Font font2 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point))
{
    Rectangle rect2 = new Rectangle(150, 10, 130, 140);

    // Create a TextFormatFlags with word wrapping, horizontal center and
    // vertical center specified.
    TextFormatFlags flags = TextFormatFlags.HorizontalLeft |
        TextFormatFlags.VerticalCenter | TextFormatFlags.WordBreak;

    // Draw the text and the surrounding rectangle.
    TextRenderer.DrawText(e.Graphics, text2, font2, rect2, Color.Blue, flags);
    e.Graphics.DrawRectangle(Pens.Black, rect2);
}


Answer 2:

从长远来看,这是我清盘做:

  1. 呼叫MeasureString左弦
  2. 呼叫MeasureString右弦
  3. 绘制左弦,左对齐
  4. 如果两个字符串的宽度之和小于可用空间的宽度,得出正确的字符串右对齐。

很简单,但我希望有东西在会所做的工作为我的框架。



文章来源: Justify text with DrawString right -and- left