Мое приложение нуждается в управлении отображением растровых изображений (jpg), а также масштабированием и панорамированием (поэтому, если вы нажмете кнопку мыши, вы сможете «переместить» увеличенное изображение внутри кадра)
То, что я сделал, поместило панель в форму, затем на внутреннюю панель pictureBox (закрепленный сверху, слева).
Поэтому, если мне нужно увеличить его, я просто выполняю приведенный ниже код из событий кнопок масштабирования:
private void ZommInOut(bool zoom) {
int zoomRatio = 10; // percent
int widthZoom = pBox.Width * zoomRatio /100;
int heightZoom = pBox.Height * zoomRatio /100;
if (zoom) {
widthZoom *= -1;
heightZoom *= -1;
}
pBox.Width += widthZoom;
pBox.Height += heightZoom;
}
Хорошо работает. Изображение увеличено, панель с полосами прокрутки - так у меня работает простая функция панорамирования.
Что мне не хватает, так это возможность использовать мышь для панорамирования - Я бы хотел перетащить картинку в любом направлении, чтобы увидеть другую ее часть (как, например, в Acrobat Reader).
Я искал способ использовать событие MouseMove и изменять полосы прокрутки программно, но я не смог этого сделать.
Есть предложения?