绘制Label上的文本内容,先获取一些参数
Graphics g = this.CreateGraphics();
//清除
g.Clear(BackColor);
//位置
Point point = lbTest.Location;
//文本
string text = lbTest.Text;
//字体
Font font = lbTest.Font;
//颜色
Brush brush = Brushes.Black;
//宽度
float width = lbTest.Width;
//高度
float height = lbTest.Height;
旋转
都是按照文本的左上角来旋转的
方式一:
//旋转前
g.DrawString(text, font, brush, point.X, point.Y);
//设置旋转点
g.TranslateTransform(point.X + height, point.Y);
//旋转90度
g.RotateTransform(90);
//绘制文本
g.DrawString(text, font, brush, 0, 0);
//取消旋转,绘制完成记得取消旋转,不然后面绘制的内容也会旋转
g.ResetTransform();
方式二:
Matrix matrix = g.Transform;
//以一个点为原点旋转90度
matrix.RotateAt(90, new PointF(point.X + height / 2, point.Y + height / 2));
g.Transform = matrix;
g.DrawString(text, font, brush, point.X, point.Y);
//取消旋转
g.ResetTransform();
旋转前,以向右为X轴正方向,向下为Y轴正方向
旋转后,以向下为X轴正方向,向左为Y轴正方向
可以对x,y参数调整绘制文本位置
看看旋转前后的效果
以第一中方式为例,如果不对x,y进行调整,直接设置旋转点
//设置旋转点
g.TranslateTransform(point.X, point.Y);
//旋转90度
g.RotateTransform(90);
//绘制文本
g.DrawString(text, font, brush, 0, 0);
//取消旋转,绘制完成记得取消旋转,不然后面绘制的内容也会旋转
g.ResetTransform();
效果是这样的