c# – 旋转文本进行打印

我正在使用PrintDocument打印页面.有一点我想旋转文字90度并打印它,即垂直打印文字.有任何想法吗 ???

g.RotateTransform(90);

不适用于OnPaint.

解决方法

当您调用RotateTransform时,您需要注意坐标系结束的位置.如果运行以下代码,则“倾斜文本”将显示在左边缘的左侧;所以它是不可见的:
e.Graphics.Clear(SystemColors.Control);
e.Graphics.DrawString("normal text",this.Font,SystemBrushes.ControlText,10,10);
e.Graphics.RotateTransform(90);
e.Graphics.DrawString("Tilted text",10);

由于您已将图面倾斜90度(时钟),所以y坐标现在将沿着左/右轴(从您的角度)移动,而不是向上/向下移动.更大的数字在左边.所以要将倾斜的文本移动到表面的可见部分,您将需要减小y坐标:

e.Graphics.Clear(SystemColors.Control);
e.Graphics.DrawString("normal text",-40);

认情况下,坐标系的起点位于表面的左上角,因此RotateTransform会旋转曲面.

这是一个说明这个的图像黑色是在调用RotateTransform之前,红色后调用RotateTransform(35):

相关文章

在要实现单例模式的类当中添加如下代码:实例化的时候:frmC...
1、如果制作圆角窗体,窗体先继承DOTNETBAR的:public parti...
根据网上资料,自己很粗略的实现了一个winform搜索提示,但是...
近期在做DSOFramer这个控件,打算自己弄一个自定义控件来封装...
今天玩了一把WMI,查询了一下电脑的硬件信息,感觉很多代码都...
最近在研究WinWordControl这个控件,因为上级要求在系统里,...