我正在尝试使用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包围它但在这种情况下不起作用。
有什么想法吗?
谢谢