zoukankan      html  css  js  c++  java
  • C#GDI+绘制多行文本和格式化文本

    绘制多行文本需要计算行高,然后绘出字符串:

    1 private void Form1_Paint(object sender, PaintEventArgs e)
    2 {
    3 Graphics g = e.Graphics;
    4 g.FillRectangle(Brushes.White,this.ClientRectangle);
    5 string s = "This string is long enough to wrap.";
    6 s += "With a 200px-width rectangle,and a 12pt font.";
    7 s += "it requires six lines to display the stirng in its entirety.";
    8
    9 Font f = new Font("Arial", 12);
    10 Rectangle r = new Rectangle(20, 20, 200, f.Height * 6);
    11 g.DrawRectangle(Pens.Black,r);
    12 g.DrawString(s, f, Brushes.Black, r);
    13
    14 f.Dispose();
    15 }

    绘制竖向文本,需要指定StringFormat类为DirectionVertical,即:StringFormat sf = new StringFormat(StringFormatFlags.DirectionVertical);

    然后应用于文字

        SizeF sizef = g.MeasureString(s, f, Int32.MaxValue, sf);

       // Create and draw the rectangle
       // Also draw the text string (using the StringFormat object)
       RectangleF rf = new RectangleF(20, 20, sizef.Width, sizef.Height);

    代码如下:

    1 private void Form1_Paint(object sender,
    2 System.Windows.Forms.PaintEventArgs e)
    3 {
    4 Graphics g = e.Graphics;
    5 g.FillRectangle(Brushes.White, this.ClientRectangle);
    6
    7 // Create a text string, a Font object, and a StringFormat object
    8   String s = "Accrington Stanley";
    9 StringFormat sf = new StringFormat(StringFormatFlags.DirectionVertical);
    10 Font f = new Font("Times New Roman", 14);
    11
    12 // Calculate the size of the text string's containing rectangle
    13   SizeF sizef = g.MeasureString(s, f, Int32.MaxValue, sf);
    14
    15 // Create and draw the rectangle
    16 // Also draw the text string (using the StringFormat object)
    17 RectangleF rf = new RectangleF(20, 20, sizef.Width, sizef.Height);
    18 g.DrawRectangle(Pens.Black, rf.Left, rf.Top, rf.Width, rf.Height);
    19 g.DrawString(s, f, Brushes.Black, rf, sf);
    20
    21 f.Dispose();
    22 }
  • 相关阅读:
    敲七
    二维指针数组**p
    食物链(待解决)
    蛇行矩阵
    快速排序 QuickSort
    堆排序
    猪的安家
    百度语言翻译机
    HTML <base> 标签
    免费网络管理流量监控软件大比拼
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2046325.html
Copyright © 2011-2022 走看看