c#

c# drawstring怎样实现多行文本

小樊
88
2024-11-23 00:52:05
栏目: 编程语言

在C#中,使用Graphics.DrawString()方法可以绘制字符串。要实现多行文本,您需要将字符串拆分为多行,然后逐行绘制。以下是一个简单的示例:

using System;
using System.Drawing;
using System.Windows.Forms;

public class MultiLineDrawString : Form
{
    private string[] lines = {
        "这是第一行文本。",
        "这是第二行文本。",
        "这是第三行文本。"
    };

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);

        // 设置字体和颜色
        Font font = new Font("Arial", 12);
        SolidBrush brush = new SolidBrush(Color.Black);

        // 计算每行的宽度和高度
        int lineHeight = font.GetHeight();
        Size lineSize;

        // 绘制每一行文本
        foreach (string line in lines)
        {
            lineSize = e.Graphics.MeasureString(line, font).ToSize();
            e.Graphics.DrawString(line, font, brush, 10, 10 + (lineHeight - lineSize.Height) / 2);
        }
    }

    [STAThread]
    static void Main()
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Application.Run(new MultiLineDrawString());
    }
}

在这个示例中,我们创建了一个名为MultiLineDrawString的窗体类,它包含一个字符串数组lines,用于存储多行文本。在OnPaint方法中,我们设置了字体和颜色,然后遍历lines数组,使用e.Graphics.MeasureString()方法计算每行的宽度和高度,并使用e.Graphics.DrawString()方法绘制每一行文本。注意,我们在绘制每行文本时,为其指定了一个不同的y坐标,以便它们在同一窗口中垂直排列。

0
看了该问题的人还看了