2017-06-20 43 views

回答

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); 
} 
相關問題