Рисование вертикального текста в WPF с помощью DrawingContext.То drawtext()

Я делаю некоторый пользовательский рисунок, используя DrawingContext в WPF. Я использую DrawingContext.DrawText для рисования строки. Теперь, в месте, где я хочу нарисовать текст вертикально. Есть ли опция в функции DrawingContext или DrawText() для рисования текста по вертикали?

3 ответов


вам придется использовать PushTransform и Pop способы DrawingContext класса.

DrawingContext dc; // Initialize this correct value
RotateTransform RT = new RotateTransform();
RT.Angle = 90
dc.PushTransform(RT)
dc.DrawText(...);
dc.Pop();

DrawingContext dc;
Point textLocation
var RT = new RotationTransform(-90.0);

// You should transform the location likewise...
location = new Point(-location.Y, location.X);

dc.PushTransform(RT);
dc.DrawText(formattedText, location);

вот мое решение: необходимо создать преобразование поворота вокруг начала текста, поэтому мы передаем x и y конструктору RotateTransform

       ...
        // ft - formatted text, (x, y) - point, where to draw            
        dc.PushTransform(new RotateTransform(-90, x, y));
        dc.DrawText(ft, new Point(x, y));
        dc.Pop();
        ...