在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坐标,以便它们在同一窗口中垂直排列。