在WinForms中绘制垂直堆叠的文本

xyz*_*xyz 5 .net c# text system.drawing winforms

最好使用一个Graphics对象,如何绘制一个字符串,使字符仍然正常,但是垂直堆叠?

sco*_*ttm 7

只需将字符串拆分为字符并绘制每个字符,将字体的行高添加到Y轴变量:

    protected override void OnPaint(PaintEventArgs e)
    {
        float x = 10.0F;
        float y = 10.0F;

        string drawString = "123";

        using(SolidBrush brush = new SolidBrush(Color.Black))
        using (Font drawFont = new Font("Arial", 16))
        {
            foreach (char c in drawString.ToCharArray())
            {
                PointF p = new PointF(x, y);
                e.Graphics.DrawString(c.ToString(), drawFont, brush, p);

                y += drawFont.Height;
            }
        }
        base.OnPaint(e);
    }
Run Code Online (Sandbox Code Playgroud)