0

我创建了一个应用程序,允许用户放大背景图片的某个部分。主要问题是,如您在图片中看到的那样,放大场滞后。这也是一个单线程应用程序。有没有人有任何建议我可以做些什么来解决我的问题?

在此处输入图像描述

我的代码:

    public void Magnifier(Point e)
    {
        magnifiedPicture.Size = new Size(MagnifierSize, MagnifierSize);    
        magnifiedPicture.Visible = true;
        magnifiedPicture.Location = new Point(e.X-MagnifierSize/2, e.Y-MagnifierSize/2);  
        magnifiedPicture.BackgroundImage = CutThePicture(CanvasImage, new Rectangle(_ptOnCanvas.X - 18, _ptOnCanvas.Y - 18, 16, 16)); 
        magnifiedPicture.Refresh(); // <-- just for probe, but without any effect
    }
4

1 回答 1

0

我在鼠标移动事件上使用 InvokePaint,问题就解决了。

InvokePaint( this, new PaintEventArgs( this.CreateGraphics(), this.DisplayRectangle ) );
于 2013-02-13T07:20:16.983 回答