在C#中,使用Graphics.DrawString
方法可以實現文本旋轉。為了旋轉文本,你需要設置StringFormat
對象的FormatFlags
屬性為StringFormatFlags.RotateAngle
,并指定旋轉的角度。以下是一個簡單的示例,展示了如何在C#中繪制旋轉的文本:
using System;
using System.Drawing;
using System.Windows.Forms;
public class RotateTextExample : Form
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
// 設置文本要旋轉的角度(以度為單位)
float angle = 45;
// 創建一個StringFormat對象,并設置旋轉角度
StringFormat format = new StringFormat();
format.FormatFlags |= StringFormatFlags.RotateAngle;
format.RotateFormatAngle = angle;
// 設置文本要旋轉的中心點(例如,文本的左下角)
format.Alignment = StringAlignment.Far;
format.LineAlignment = StringAlignment.Far;
format.Trimming = StringTrimming.EllipsisCharacter;
// 要繪制的文本
string text = "旋轉的文本";
// 獲取控件的寬度和高度
int width = this.ClientSize.Width;
int height = this.ClientSize.Height;
// 計算文本的邊界框
RectangleF rect = new RectangleF(0, 0, width, height);
e.Graphics.MeasureString(text, this.Font, format, rect, out SizeF size);
// 計算旋轉后的文本位置
float x = (width - size.Width) / 2;
float y = (height - size.Height) / 2;
// 繪制旋轉后的文本
e.Graphics.DrawString(text, this.Font, Brushes.Black, x, y, format);
}
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new RotateTextExample());
}
}
在這個示例中,我們創建了一個名為RotateTextExample
的窗體類,并在其OnPaint
方法中繪制了旋轉的文本。我們設置了旋轉角度為45度,并計算了文本的邊界框以及旋轉后的文本位置。最后,我們使用Graphics.DrawString
方法繪制了旋轉后的文本。