【发布时间】:2018-01-12 14:05:04
【问题描述】:
我必须放大和缩小我在 winform 上绘制的 2D 图形的特定部分,例如(线、矩形、圆)。 我没有使用任何图片框,面板。 我创建了简单的程序来绘制圆圈并单击按钮尝试缩放 但它显示错误“参数无效” 在方法 Drawing()@Line-DeviceContext.Transform = mainViewTransform;
public Graphics DeviceContexct;
public Matrix mainViewTransform = new Matrix();
private void ScalingCircle_Paint( object sender, PaintEventArgs e )
{
Pen myPen = new Pen(Color.Blue, 1);
e.Graphics.DrawRectangle(myPen, 50, 50, 100, 100);
mainViewTransform.Scale(3, 2);
DeviceContexct = e.Graphics;
}
private void Drawing(Graphics gr)
{
Pen myPen2 = new Pen(Color.Red, 1);
DeviceContexct.Transform = mainViewTransform;
DeviceContexct.DrawRectangle(myPen2, 50, 50, 100, 100);
}
private void button1_Click( object sender, EventArgs e )
{
Drawing(DeviceContexct);
}
【问题讨论】:
-
如果您要问如何去做(或获取准备使用的代码),那么这是题外话。如果您编写的代码有特定问题,请在此处包含。
-
我想要一些提示不是所有现成的代码实际上我没有找到任何合适的解决方案。面板和图片框等基础上有代码。
-
你是在
Paint事件中自己绘制那些对象吗?检查Graphics.ScaleTransform()和Graphics.TranslateTransform()方法(比根据平移/缩放数据重新计算顶点要容易得多)