在C#中,使用GDI(Graphics Device Interface)可以实现交互式绘图。以下是一个简单的示例,展示了如何使用C# GDI实现一个基本的交互式绘图程序:
首先,创建一个新的Windows Forms应用程序项目。
在Form类中,添加以下成员变量:
private Graphics g;
private Pen pen;
private bool isDrawing = false;
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
g = this.CreateGraphics();
pen = new Pen(Color.Black, 2);
}
OnMouseDown
的事件处理器,用于处理鼠标按下事件:protected override void OnMouseDown(MouseEventArgs e)
{
isDrawing = true;
g.DrawLine(pen, e.X, e.Y, e.X, e.Y);
}
OnMouseMove
的事件处理器,用于处理鼠标移动事件:protected override void OnMouseMove(MouseEventArgs e)
{
if (!isDrawing) return;
g.DrawLine(pen, e.X, e.Y, e.X, e.Y);
}
OnMouseUp
的事件处理器,用于处理鼠标松开事件:protected override void OnMouseUp(MouseEventArgs e)
{
isDrawing = false;
}
OnPaint
方法,用于绘制图形:protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
g.DrawAllLines(pen, this.GetLines());
}
OnResize
方法,以便在调整窗口大小时重新绘制图形:protected override void OnResize(EventArgs e)
{
base.OnResize(e);
this.Invalidate();
}
Dispose
方法,以释放资源:protected override void Dispose(bool disposing)
{
if (disposing)
{
pen.Dispose();
g.Dispose();
}
base.Dispose(disposing);
}
现在,你可以运行这个程序,并用鼠标在窗体上绘制线条。这个示例仅实现了基本的交互式绘图功能,你可以根据需要扩展它,例如添加更多的绘图工具(如矩形、圆形等)和功能(如清除、保存等)。