将ScaleTransform应用于图形GDI +

我把这个简单的代码放在一起画一条线。 现在我想将ScaleTransform应用到它10倍; 但是下面的代码不起作用。

 var bitmap = new Bitmap(pictureBox1.Size.Width, pictureBox1.Size.Height); var g = Graphics.FromImage(bitmap); pictureBox1.Image = bitmap; var pn = new Pen(Color.Wheat, -1); g.DrawLine(pn, 0, 0, 10, 10); pn.Dispose(); // I'm trying to scaletransform here! g.ScaleTransform(10, 10); 

更新:

更新更改的正确方法是什么? 我没有得到任何结果:(

 g.ScaleTransform(1, 1); pictureBox1.Invalidate(); 

您必须在绘制线之前应用变换!

 var g = Graphics.FromImage(bitmap); g.ScaleTransform(10, 10); using (pn = new Pen(Color.Wheat, -1)) { g.DrawLine(pn, 0, 0, 10, 10); } 

转换应用于图形对象的变换矩阵( g.Transform )。

还要使用using语句来处理资源。 如果发生exception,或者如果using语句块应该留下returnbreak语句,它甚至会处理笔。