2 yjw2009 yjw2009 于 2014.12.16 09:36 提问

C# gdi+ 如何让字体旋转

Bitmap bTextBmp = new Bitmap(20, 50);
Graphics gphText = Graphics.FromImage(bTextBmp);

        gphText.TranslateTransform(10, 25);//平移到适当的位置,以便下面旋转后可以显示
        gphText.RotateTransform(90);//旋转角度,以达到你要的效果
       // gphText.DrawString("counts", new Font("Times New Roman", 12, FontStyle.Regular), Brushes.Black, new PointF(10, 0));
        StringFormat format = new StringFormat(StringFormatFlags.NoClip);
        format.Alignment =StringAlignment.Center;
        format.LineAlignment = StringAlignment.Center;
        gphText.DrawString("Counts ", new Font("Times New Roman", 12, FontStyle.Regular), Brushes.Black, 0, 0, format);


        pictureBox2.Image = bTextBmp;



                    主要是想做y坐标轴的标注,这样是可以旋转,但是字体变形,有没有更好的方法,或者,如何写才正确。谢谢。就是想画一个简单的折线图。。

3个回答

devmiao
devmiao   Ds   Rxr 2014.12.16 09:52

如果是旋转90度,在字体名前加上@
比如@Times New Roman
就可以了。

yjw2009
yjw2009 不行呀
3 年多之前 回复
bdmh
bdmh   Ds   Rxr 2014.12.16 09:49

你直接旋转画布,graphic有几个translate相关的方法,旋转画布,不用你再计算坐标了

yjw2009
yjw2009 有代码吗
3 年多之前 回复
bdmh
bdmh   Ds   Rxr 2014.12.17 11:45
    private void Form1_Paint(object sender, PaintEventArgs e)
    {
        e.Graphics.DrawLine(Pens.Red, 0, 0, 100, 0);
        e.Graphics.RotateTransform(20);
        e.Graphics.DrawLine(Pens.Red, 0, 0, 100, 0);
        e.Graphics.RotateTransform(20);
        e.Graphics.DrawLine(Pens.Red, 0, 0, 100, 0);
    }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
用GDI+使文字轻松旋转
用GDI+使文字轻松旋转 下载本文代码见资源 在老式的Windows图形设备接口中制作旋转文字会是一件痛苦费力的工作,但在.NET中它会变得很简单。by Bill Wagner
C#利用GDI+绘制旋转文字,矩形内可以根据布局方式排列文本
C#中利用GDI+绘制旋转文本的文字,网上有很多资料,基本都使用矩阵旋转的方式实现。但基本都只提及按点旋转,若要实现在矩形范围内旋转文本,资料较少。经过琢磨,可以将矩形内旋转转化为按点旋转,不过需要经过不少的计算过程。利用下面的类可以实现该功能。 using System; using System.Collections.Generic; using System.Drawing; using
GDI+文字旋转
 要使用GDI+,必须先创建Graphics对象,创建Graphics共有三种方法,第一种为private void Form1_Paint(object sender, System.Windows.Forms.PaintEventArgs e){   Graphics g =e.Graphics;第二种为:Graphics gh = this.CreateGraphics();也可以用
读书笔记_GDI+程序设计_第四章(文本和字体)
  1. 绘制基本文本DrawString方法有一个重载版本是g.DrawString(string s, Font font, Brush brush, RectangleF layoutRectangle, StringFormat format)在定义这个矩形的高度时,需要知道字体的Height属性(尤其是要知道,用于表示字体高度和矩形高度的单位),这样文本才会正好位于矩形中
GDI设置字体旋转的方法
方法1:通过设置WorldTransform进行变换:angle为文字旋转的角度position为文字的位置 XFORM xForm; xForm.eDx = float(position.x); xForm.eDy = float(position.y); xForm.eM11 = float(cos(angle)); xForm.eM12 = float(sin(a...
GDI+中的文字旋转
GDI+中的文字旋转其实就是平移Graphics对象,然后将Graphics对象旋转。主要用TranslateTransform()和RotateTransform()方法。
GDI+ 文字旋转后 位置变化.
StringFormat format;   format.SetAlignment(StringAlignmentCenter);     format.SetLineAlignment(StringAlignmentNear);   Gdiplus::Font clrFont(L"Arial",65,FontStyleRegular,UnitPixel );   SolidBrush
C#中基于GDI+(Graphics)图像处理系列之文字或者图片水印(透明、任意角度旋转)
简介 给图片添加水印是比较常用的功能,通常是用于给图片添加版权的信息或者作者信息。 本文将重点向大家介绍怎么使用GDI+(Graphics)给图像添加图片水印和文字水印。 图片水印 技术要点 控制图片水印位置 控制图片水印透明度 控制图片水印旋转角度 图片水印主体代码 文字水印要点 技术要点 控制文字水印位置 控制文字水印透明度 文字水印主体代码 注意:如果
C#GDI绘制自定义字体
绘制自定义的字体: private void PaintMessageBox()         {             Graphics g = this.panel1.CreateGraphics();//为panel1创建Graphics对象             Font ft = new Font("黑体", 17F, System.Drawing.FontStyle.Regula
C#使用GDI+绘制高质量图和字体
对于GDI+,在正常的操作,Bitmap-- Graphcis -- DrawImage或者DrawString ,生成图片的话,会产生很多杂点,或者是图片质量不稳定..尤其是在读取图片后,生成缩略图之后,文件会被压缩而失真..主要原因是因为没有重新设置Graphics的几个属性..1.Graphics.SmoothingMode属性: 例如SmoothingMode.HighQuality可以产