如何:在矩形中绘制换行文本

真受不了,居然所有人都认为微软不会在DrawString内置一个换行的功能么

各种循环、循环、循环……效率很低下好吧

看看,人家官网直接给出的方法

http://msdn.microsoft.com/zh-cn/library/baw6k39s(v=vs.80).aspx

用 GDI+ 在矩形中绘制换行文本

使用  DrawString  重载方法,使用时传入您需要的文本、 Rectangle  或  RectangleF Font  以及  Brush

string text1 = "Draw text in a rectangle by passing a RectF to the DrawString method.";
using (Font font1 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point))
{
    RectangleF rectF1 = new RectangleF(30, 10, 100, 122);
    e.Graphics.DrawString(text1, font1, Brushes.Blue, rectF1);
    e.Graphics.DrawRectangle(Pens.Black, Rectangle.Round(rectF1));
}

用 GDI 在矩形中绘制换行文本

使用  TextFormatFlags  枚举值指定应通过  DrawText  重载方法换行的文本,使用时传入您需要的文本、 Rectangle Font  以及  Color

string text2 = "Draw text in a rectangle by passing a RectF to the DrawString method.";
using (Font font2 = new Font("Arial", 12, FontStyle.Bold, GraphicsUnit.Point))
{
    Rectangle rect2 = new Rectangle(30, 10, 100, 122);

    // Specify the text is wrapped.
    TextFormatFlags flags = TextFormatFlags.WordBreak;
    TextRenderer.DrawText(e.Graphics, text2, font2, rect2, Color.Blue, flags);
    e.Graphics.DrawRectangle(Pens.Black, Rectangle.Round(rect2));

}

编译代码

前面的示例需要:



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值