c# – Graphics.DrawString砍掉中间词

我创建了一个usercontrol,它基本上是一个带有一些不错的小功能的按钮.

其中一个特性是它确定了文本可能的最大字体大小,同时将文本保留在盒子的限制范围内.

这在大多数情况下都可以正常工作,但有时它会将一个单词切成两半以适应它.

所以它可能会显示为……

stackov 
erflow

而不是

stackoverflow 

(但是字体较小)

我认为会有一个StringFormatFlag允许我指定如何完成自动换行.

我想要自动换行,但不是’字符’换行.

谢谢
丰富.

最佳答案 您可以尝试使用TextRenderer:

  TextRenderer.DrawText(e.Graphics,
                        "stackoverflow",
                        this.Font,
                        new Rectangle(10, 10, 32, 32),
                        Color.Black,
                        Color.Empty,
                        TextFormatFlags.WordBreak | TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter);

  TextRenderer.DrawText(e.Graphics,
                        "stack overflow",
                        this.Font,
                        new Rectangle(50, 10, 32, 32),
                        Color.Black,
                        Color.Empty,
                        TextFormatFlags.WordBreak | TextFormatFlags.VerticalCenter | TextFormatFlags.HorizontalCenter);
点赞