我创建了一个usercontrol,它基本上是一个带有一些不错的小功能的按钮。
其中一个功能是确定文本可能的最大字体大小,同时将文本保留在框内的范围内。
这在大多数情况下都可以正常工作,但有时它会将一个单词切成两半以适应它。
所以它可能会显示为..
stackov
erflow
而不是
stackoverflow
(但字体较小)
我认为会有一个StringFormatFlag允许我指定自动换行的方式。
我想要自动换行,但不是'字符'换行。
由于 丰富。
答案 0 :(得分:3)
您可以尝试使用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);
答案 1 :(得分:-1)
填充StringFormatFlags属性时需要指定StringFormat.FormatFlags。NoWrap。然后使用一个接受StringFormat类的DrawString重载。以下三种方法之一:
DrawString(String,Font,Brush,PointF,StringFormat)
DrawString(String,Font,Brush,RectangleF,StringFormat)
DrawString(String,Font,Brush,Single,Single,StringFormat)