其他分享
首页 > 其他分享> > CodeGo.net>将ScaleTransform应用于图形GDI

CodeGo.net>将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语句来配置资源.如果发生异常,或者在using语句块中留有return或break语句,它甚至会处理笔.

标签:gdi-2,scaletransform,c
来源: https://codeday.me/bug/20191121/2055684.html