如何在不改变其中间坐标的情况下调整图片框的大小

时间:2017-06-20 20:32:27

标签: c# .net windows-forms-designer

不幸的是,调整大小时的图片框会跳到下角。 我读到我需要用Docker和Anchor设置一些内容,但我不知道如何。

1 个答案:

答案 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);
}