Я пытаюсь использовать стеклянную лупу на элементе управления PictureEdit (devexpress) в форме Windows.
мы установили PictureEdit.SizeMode = Squeeze. это важно. в нашем приложении я уже использую режим размера сжатия.
Я получаю проблему расчета местоположения мыши, для рисования прямоугольного изображения на увеличенной панели.
Вот код события PartialMag_Paint расширенной панели. в котором мы показываем увеличенное изображение заостренной области мыши
int srcx = (PartailMagImageView.Location.X + PartailMagImageView.Width / 2);
int srcy = (PartailMagImageView.Location.Y + PartailMagImageView.Height / 2);
e.Graphics.DrawImage(this.Image
, new System.Drawing.Rectangle(0, 0, PartailMagImageView.Width, PartailMagImageView.Height)
, new System.Drawing.Rectangle(srcx - ZoomOutRate / 2, srcy - ZoomOutRate / 2, ZoomOutRate, ZoomOutRate)
, GraphicsUnit.Pixel);
Pen mypen = new Pen(Color.Black, 7);
e.Graphics.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality;
e.Graphics.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
e.Graphics.CompositingQuality = System.Drawing.Drawing2D.CompositingQuality.HighQuality;
e.Graphics.DrawEllipse(mypen, 0, 0, PartailMagImageView.Width - 7, PartailMagImageView.Height - 7);
если нужно, чтобы увидеть полный пример кода. я прилагаю образец в ссылке dropbox
https://www.dropbox.com/s/mogmshuiimtvhk7/ImageMagnifyingWindowsForm.zip?dl=0