我在WPF中使用DrawingContext进行一些自定义绘图。我正在使用DrawingContext.DrawText
来绘制字符串。现在,在一个我想垂直绘制文本的地方。 DrawingContext或DrawText()函数中是否有任何选项可以垂直绘制文本?
答案 0 :(得分:12)
您必须使用PushTransform
类的Pop
和DrawingContext
方法。
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();
...