Използвам WinForms. В моето приложение WinForms имам поле за картина. Имам изображение в кутията с картинки. Този код ми позволява да местя изображението в картинната кутия. Как да препозиционирам изображението обратно към местоположението му по подразбиране при събитие с щракване на бутон?
private Point startingPoint = Point.Empty;
private Point movingPoint = Point.Empty;
private bool panning = false;
private void pictureBox1_MouseDown_1(object sender, MouseEventArgs e)
{
if (On_Radio.Checked == true)
{
panning = true;
startingPoint = new Point(e.Location.X - movingPoint.X,
e.Location.Y - movingPoint.Y);
}
}
private void pictureBox1_MouseMove_1(object sender, MouseEventArgs e)
{
if (panning)
{
movingPoint = new Point(e.Location.X - startingPoint.X,
e.Location.Y - startingPoint.Y);
pictureBox1.Invalidate();
}
}
private void pictureBox1_MouseUp(object sender, MouseEventArgs e)
{
panning = false;
}
private void pictureBox1_Paint_1(object sender, PaintEventArgs e)
{
e.Graphics.Clear(Color.White);
e.Graphics.DrawImage(pictureBox1.Image, movingPoint);
}
movingPoint =Point.Empty
трябва да свърши работа - person Reza Aghaei   schedule 14.10.2015pictureBox1_MouseMove
вместоpictureBox1_MouseMove_1
Освен това е по-добре да използвате персонализирана контрола или персонализирана наследена картинна кутия, за да правите такова панорамиране и да рисувате изображението без трептене, Вие също трябва помислете за ленти за превъртане и .... Добър пример за започване на работа с GDI+, но трябва да научите повече :) - person Reza Aghaei   schedule 15.10.2015