2008-09-18 46 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