Как напечатать вертикальный текст в C #, который печатает вверх? (StringFormat.DirectionVirtical печатает вниз) - PullRequest
1 голос
/ 05 октября 2011

Я хочу напечатать текст в C # с помощью System.Drawing, но установка флага StringFormat.DirectionVirtical, по-видимому, только печатает текст вниз.Я хочу, чтобы он печатался другим способом, как вы видите на графиках.

Это будет больше, чем просто формы, поэтому я хочу посмотреть, есть ли способ сделать это без использования матрицы преобразования при рисовании.

Есть ли способ сделать это?

1 Ответ

2 голосов
/ 05 октября 2011

Используйте Graphics.RotateTransform для поворота текста так, как вы хотите. Например:

public partial class Form1 : Form {
    public Form1() {
        InitializeComponent();
    }
    protected override void OnPaint(PaintEventArgs e) {
        string text = "Vertical text";
        SizeF textSize = e.Graphics.MeasureString(text, this.Font);
        e.Graphics.RotateTransform(-90);
        e.Graphics.DrawString(text, this.Font, Brushes.Black,
            new PointF(-textSize.Width, 0));
    }
}
...