不幸的是,调整大小时的图片框会跳到下角。 我读到我需要用Docker和Anchor设置一些内容,但我不知道如何。
答案 0 :(得分:0)
您的Location
(x,y)指的是控件的左上角。调整PictureBox的大小时,除非您也更改位置,否则只会移动右下角。
您是否在更改代码中的大小?如果是这样,您可以使用辅助方法来执行此操作。如果图像越来越大,图像需要向左移动一半的宽度变化,如果变小,则需要向右移动宽度变化的一半(相同的逻辑适用于高度):
private void ChangePictureBoxSize(int newWidth, int newHeight)
{
// these will be negative if picturebox is getting bigger
int changeInWidth = pictureBox1.Width - newWidth;
int changeInHeight = pictureBox1.Height - newHeight;
// will shift left and up if picturebox is getting bigger
int newX = pictureBox1.Location.X + (changeInWidth / 2);
int newY = pictureBox1.Location.Y + (changeInHeight / 2);
pictureBox1.Location = new Point(newX, newY);
pictureBox1.Size = new Size(newWidth, newHeight);
}