我想以特定角度顯示給定的字符串。我試圖用System.Drawing.Font
這個類來做到這一點。這裏是我的代碼:如何在GDI +中旋轉文本?
Font boldFont = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Bold, GraphicsUnit.Pixel, 1, true);
graphics.DrawString("test", boldFont, textBrush, 0, 0);
誰能幫助我?
我想以特定角度顯示給定的字符串。我試圖用System.Drawing.Font
這個類來做到這一點。這裏是我的代碼:如何在GDI +中旋轉文本?
Font boldFont = new Font(FontFamily.GenericSansSerif, 12, FontStyle.Bold, GraphicsUnit.Pixel, 1, true);
graphics.DrawString("test", boldFont, textBrush, 0, 0);
誰能幫助我?
String theString = "45 Degree Rotated Text";
SizeF sz = e.Graphics.VisibleClipBounds.Size;
//Offset the coordinate system so that point (0, 0) is at the
center of the desired area.
e.Graphics.TranslateTransform(sz.Width/2, sz.Height/2);
//Rotate the Graphics object.
e.Graphics.RotateTransform(45);
sz = e.Graphics.MeasureString(theString, this.Font);
//Offset the Drawstring method so that the center of the string matches the center.
e.Graphics.DrawString(theString, this.Font, Brushes.Black, -(sz.Width/2), -(sz.Height/2));
//Reset the graphics object Transformations.
e.Graphics.ResetTransform();
從here服用。
可以使用RotateTransform
方法(see MSDN)爲所有借鑑Graphics
(使用DrawString
繪製包括文本)指定旋轉。該angle
爲度:
graphics.RotateTransform(angle)
如果你想要做的只是一個單一的旋轉操作,那麼您可以通過再次調用RotateTransform
負角(或者重置變換到原來的狀態,您可以使用ResetTransform
,但這將清除你應用了所有轉換你想要的東西可能不是):
graphics.RotateTransform(-angle)
如果你想有一個方法來繪製在琴絃中心位置旋轉的字符串,那麼試試下面的方法:
public void drawRotatedText(Bitmap bmp, int x, int y, float angle, string text, Font font, Brush brush)
{
Graphics g = Graphics.FromImage(bmp);
g.TranslateTransform(x, y); // Set rotation point
g.RotateTransform(angle); // Rotate text
g.TranslateTransform(-x, -y); // Reset translate transform
SizeF size = g.MeasureString(text, font); // Get size of rotated text (bounding box)
g.DrawString(text, font, brush, new PointF(x - size.Width/2.0f, y - size.Height/2.0f)); // Draw string centered in x, y
g.ResetTransform(); // Only needed if you reuse the Graphics object for multiple calls to DrawString
g.Dispose();
}
問候 漢斯銑牀...
你是英雄!謝謝。 – 2017-02-18 21:51:38
我已經嘗試過這一點,但然後我所有繪製的圖形都會旋轉。這不是很有幫助。 – eagle999 2010-12-12 11:30:03
@ eagle999使用ResetTransform()完成繪製旋轉後的文字 – 2013-01-19 02:37:02