Сначала я извиняюсь за мой плохой английский. Теперь у меня проблема с моим проектом C # (ms paint). Когда я открываю новое изображение в графическом окне, последняя нарисованная мною фигура остается, пока я не нарисую другую линию на этом изображении. Вот мой код:
Линия рисования:
public Form1()
{
InitializeComponent();
snapshot = new Bitmap(pictureBox1.Width, pictureBox1.Height);
}
if (tempDraw != null)
{
tempDraw = (Bitmap)snapshot.Clone();
Graphics g = Graphics.FromImage(tempDraw);
Pen myPen = new Pen(colorPickerDropDown1.SelectedColor, 5);
g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;
myPen.DashStyle = System.Drawing.Drawing2D.DashStyle.Dot;
g.DrawLine(myPen, pDau, pHientai);
myPen.Dispose();
e.Graphics.DrawImageUnscaled(tempDraw, 0, 0);
g.Dispose();
}
- события мыши:
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
paint = false;
snapshot = (Bitmap)tempDraw.Clone();
}
private void pictureBox1_MouseDown(object sender, MouseEventArgs e)
{
paint = true;
saved = false;
pDau = e.Location;
tempDraw = (Bitmap)snapshot.Clone();
}
private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
if (paint)
{
pHientai = e.Location;
pictureBox1.Invalidate();
saved = false;
}
}
- создать новую графическую рамку:
public void New()
{
pictureBox1.Image =null;
snapshot = null;
tempDraw = null;
snapshot= new Bitmap(pictureBox1.Width, pictureBox1.Height);
}
-Откройте изображение:
New();
snapshot = new Bitmap(openFileDialog1.FileName);
tempDraw = (Bitmap)snapshot.Clone();
pictureBox1.Image = new Bitmap(openFileDialog1.FileName);
strPath = openFileDialog1.FileName;
this.Text = strPath + " - Paint";
Можете ли вы сказать мне что-то не так? Огромное спасибо!