在放大C#时抖动图像

时间:2013-11-19 21:06:32

标签: c# image zoom shake

我正在尝试使用autoscroll设置为True和pictureBox的面板在C#中缩放图像。根据缩放系数,我设置了pictureBox的大小和位置。

pictureBox的大小确定如下:

Size pbSize = new Size((int)(image.width * zoom), (int)(image.height * zoom));

位置取决于面板的大小和图像的大小,以便在缩放时图像将在面板中居中。

int xPos = (int)(panelCenter.X - ((image.width / 2)  * zoom));
int yPos = (int)(panelCenter.Y - ((image.height / 2)  * zoom));

然后我设置大小和滚动位置

Point scrollPos = new Point(xPos > 0 ? 0 : -xPos, yPos > 0 ? 0 : -yPos);
pbImage.Size = pbSize;
AutoScrollPosition = scrollPos;

当我这样做时,可以清楚地看到首先改变尺寸然后改变位置。它不是一气呵成的。当缩放系数改变时,图像看起来像是在颤抖。

这可以做成一个原子动作吗?

我尝试用SuspendLayout和Resumelayout包围它但在这种情况下不起作用。

有什么想法吗?

谢谢

0 个答案:

没有答案