Как в дочерней форме правильно найти координаты курсора в относительно самой дочерней формы для приближения картинки Winforms MDI C#
Пишу приложение для открытия картинок через MDI WinForms. И в приложении мне нужно сделать приближение картинки через инструмент "лупа".
Для отображение картинки в этом приложении я использую объект Graphics
.
Отображение картинки идет со смещением, потому что отсчет объекта Cursor
идет относительно родительской формы(как я понял), а мне нужно, чтобы было относительно дочерней. То есть, ошибка идет при вычислении места, относительно которого затем выполняется приближение(перерисовка) картинки.
Я пытался что-то придумать, и всё, что у меня вышло - приведено в коде ниже. Так же прилаживаю пару скринов этого бага.
Пример кода ниже:
graphics
- поле, что содержит графику;
ImageBuffer
- поле, в которой лежит картинка(Bitmap
), что отображается в дочернем окне;
coefficient
- коэффициент, на который увеличивается картинка;
parent
- родительская форма
graphics.DrawImage(ImageBuffer,
-Cursor.Position.X + ImageBuffer.Width + parent.PointToScreen(Location).X,
-Cursor.Position.Y + ImageBuffer.Height + parent.PointToScreen(Location).Y,
ImageBuffer.Width * coefficient,
ImageBuffer.Height * coefficient);
Нажимаем на точечку, к которой ведет стрелочка:
Получаем такую картинку:
Хотя, мы должны были приблизиться к той точке, на груди. Она должна была быть в центре. Заранее благодарю, за помощь!