Используя что-то вроде:
Код: Выделить всё
private void ZoomControl_Paint(object sender, PaintEventArgs e)
{
var g = e.Graphics;
g.Transform = new Matrix();
Zoom = 0.5;
float X = dx;
float Y = dy;
g.TranslateTransform(X, Y);
g.ScaleTransform(zoom, zoom);
g.DrawImage(objBitmap, 0,0);
}
Я могу правильно масштабируйте, используя методы изображения, и рисуйте нормально на элементе управления для идеального решения, но это не дает хорошей отправной точки для масштабирования и панорамирования.
Ожидаемый результат
Этот подход обеспечивает лучшую анимацию на этапах перетаскивания и масштабирования, а вдохновение для этой попытки было взято здесь https://github.com/AliAlAali/ZoomPanControl. К сожалению, в этом примере не используется и не начинается идеально масштабированное и центрированное изображение.
Подробнее здесь: https://stackoverflow.com/questions/787 ... transforms