Files
Paint2/Paint_2/Form1.cs

67 lines
2.2 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace Paint_2
{
public partial class PaintForm : Form
{
Sketch sketch;
List<PaintTool> toolList;
bool drawing = false;
Random rnd;
public PaintForm()
{
InitializeComponent();
rnd = new Random();
nupWidth.Value = canvas.Width;
nupHeight.Value = canvas.Height;
toolList = new List<PaintTool>();
toolList.Add(new Pencil());
toolList.Add(new Pencil());
sketch = new Sketch(new Size((int)nupWidth.Value, (int)nupHeight.Value), toolList);
canvas.Image = sketch.Drawing;
}
private Point MousePositionToCanvasPosition()
{
return new Point(MousePosition.X - canvas.Location.X,MousePosition.Y - canvas.Location.Y);
}
private void canvas_MouseDown(object sender, MouseEventArgs e)
{
drawing = true;
sketch.StartDrawing(MousePositionToCanvasPosition(), Color.FromArgb(rnd.Next(0,256), rnd.Next(0, 256), rnd.Next(0, 256)), (int)nupPencilWidth.Value);
tmrRefresh.Enabled = true;
List<Color> colorHistory = sketch.CurrentTool.GetLastColors(4);
btnColorHistory1.BackColor = colorHistory[0];
btnColorHistory2.BackColor = colorHistory[1];
btnColorHistory3.BackColor = colorHistory[2];
btnColorHistory4.BackColor = colorHistory[3];
}
private void canvas_MouseUp(object sender, MouseEventArgs e)
{
tmrRefresh.Enabled = false;
sketch.AddDrawingPoint(MousePositionToCanvasPosition());
canvas.Image = sketch.Paint();
drawing = false;
}
private void tmrRefresh_Tick(object sender, EventArgs e)
{
if (drawing)
{
sketch.AddDrawingPoint(MousePositionToCanvasPosition());
canvas.Image = sketch.Paint();
}
}
}
}