我已经创建了一个用户控件,它基本上是一个带有一些很好的小功能的按钮。
这些功能之一是,它确定文本可能的最大字体大小,同时将文本保持在框上的范围内。
这在大多数情况下工作得很好,但有时它会将一个单词切成两半以适应它。
所以它可能看起来像..
stackov
erflow
而不是
stackoverflow
(但使用较小的字体)
我想应该有一个StringFormatFlag来允许我指定如何进行自动换行。
我想要单词换行,而不是“字符”换行。
谢谢瑞奇。
发布于 2011-08-16 21:09:30
您可以尝试使用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);
发布于 2011-08-16 21:01:58
填充StringFormat.FormatFlags属性时需要指定StringFormatFlags.NoWrap。然后使用一个接受StringFormat类的DrawString重载。以下三种方法之一:
DrawString(字符串,字体,画笔,PointF,StringFormat)
DrawString(字符串,字体,画笔,RectangleF,StringFormat)
DrawString(String,Font,Brush,Single,Single,StringFormat)
https://stackoverflow.com/questions/7084620
复制