2008-09-18 50 views

回答

7

拉绳呼叫之前做一个Graphics.rotateTransform。正如菲尔赖特指出的那样,不要忘记随后改变这种变化。

+0

你可以有lotsa乐趣加入了半随机在文本编辑器:) – leppie 2008-09-18 10:43:42

9

您可以使用Graphics类上可用的RotateTransform和TranslateTransform。由于使用DrawString是GDI +,转换会影响绘图。所以使用这样的东西...

g.RotateTransform(45f); 
g.DrawString("My String"...); 
g.RotateTransform(-45f); 

不要忘了扭转变化!

-1

还有一种方法可以在C#中构建垂直文本。不需要显式的图形转换。您可以使用StringFormat类。下面是一个垂直绘制文本的示例代码:

StringFormat sf = new StringFormat(); sf.FormatFlags = StringFormatFlags.DirectionVertical; e.Graphics.DrawString(“My String”,this.Font,Brushes.Black,PointF.Empty,sf);

0

u有right..It可以在way..BUT文本进行将从顶部写入底部总是和我不知道美国可以从底部到顶部更改..欢呼

1

你可以使用这个功能。

void DrawDigonalString(Graphics G, string S, Font F, Brush B, PointF P, int Angle) 
    { 
     SizeF MySize = G.MeasureString(S, F); 
     G.TranslateTransform(P.X + MySize.Width/2, P.Y + MySize.Height/2); 
     G.RotateTransform(Angle); 
     G.DrawString(S, F, B, new PointF(-MySize.Width/2, -MySize.Height/2)); 
     G.RotateTransform(-Angle); 
     G.TranslateTransform(-P.X - MySize.Width/2, -P.Y- MySize.Height/2); 
    } 

像这样

enter image description here

+0

就像一个魅力变换每一行!但是,我怎样才能确定角度文本的宽度?例如如果我有一个字符串宽度为50.旋转文本后,它将占用更少的宽度... – prototype0815 2018-01-05 07:19:04

相关问题