使用DrawingContext.DrawText()在WPF中绘制垂直文本

时间:2012-01-11 06:49:25

标签: c# .net wpf drawing

我在WPF中使用DrawingContext进行一些自定义绘图。我正在使用DrawingContext.DrawText来绘制字符串。现在,在一个我想垂直绘制文本的地方。 DrawingContext或DrawText()函数中是否有任何选项可以垂直绘制文本?

3 个答案:

答案 0 :(得分:12)

您必须使用PushTransform类的PopDrawingContext方法。

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

答案 1 :(得分:4)

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);

对不起,我不得不发布这个帖子,因为我正在撞墙直到十五分钟试图解决这个问题。我不想让任何人通过它。

答案 2 :(得分:0)

这是我的解决方案:需要围绕文本原点创建旋转变换,因此我们将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();
        ...