TextRenderer.DrawString未绘制长字符串

时间:2014-09-19 10:43:19

标签: c# .net textrenderer

以下代码不会绘制任何内容:

void Form3_Paint(object sender, PaintEventArgs e)
{
      string text = new string('m', 3000);
      TextRenderer.DrawText(
          e.Graphics,
          text,
          this.Font,
          new Point(10, 10),
          Color.Black,
          Color.Transparent);
}

似乎字符串太长了。如果我将字符串长度更改为2000,它可以工作(我使用的是SegoeUI 9)字体。

您知道任何解决方法吗?

1 个答案:

答案 0 :(得分:1)

我尝试你的代码块并绘制它。所以我将字符串长度增加到4401.之后我的测试也失败了。

可能TextRender.DrawText方法对字符串有限制。但我认为这种限制应该取决于机器。

您想要解决方法。所以我建议使用Graphics.DrawString方法。

string text = new string('m', 4401);
            e.Graphics.DrawString(text,
                this.Font,
                Brushes.Black,
                new Point(0, 0)
                );

<强>被修改

哦!我搜索了这个问题,我在stackoverflow上找到了这个问题。

TextRenderer doesn't draw a long string

多么巧合!你在1年前问过同样的问题。