Я разработал приложение Windows на С#, где у меня есть pictureBox внутри панели. Я применил в нем функции увеличения и уменьшения масштаба. Теперь я хочу, чтобы изображение внутри pictureBox панорамировалось. Я применил события mouseDown, mouseMove и mouseUp к pictureBox. Код для него:
private void pictureBox2_MouseDown(object sender, MouseEventArgs e)
{
if (pflag == 1)
{
dragging = true;
start = e.Location;
}
}
private void pictureBox2_MouseMove(object sender, MouseEventArgs e)
{
// panning code
if (pflag == 1)
{
if (dragging && zoom == 1)
{
pictureBox2.Location = new Point(pictureBox2.Left + (e.Location.X - start.X), pictureBox2.Top + (e.Location.Y - start.Y));
}
}
}
private void pictureBox2_MouseUp(object sender, MouseEventArgs e)
{
if (pflag == 1)
{
dragging = false;
}
}
Здесь изображение панорамируется, но без контроля границ. Иногда даже изображение выходит за пределы панели при панорамировании. Что мне нужно здесь, так это то, что изображение должно перемещаться вверх, влево, вправо, вниз в соответствии с коэффициентом масштабирования, т.е. как работает полоса прокрутки, а не более того.