2016-07-15 42 views
0

我想要一個圖片框內的圖片,它將根據窗口的大小自動調整,但不會大於原始圖片。雖然PictureBoxSizeMode.Zoom幾乎可以做到這一點,但當PictureBox大於圖像時,它會導致圖像像素化。我目前正在執行的調整本代碼:調整圖片框中的圖片大小,直到它是原始圖片的大小

if (pBox.Height * pBox.Height < pBox.Image.Width * pBox.Image.Height) pBox.SizeMode = PictureBoxSizeMode.Zoom; 
else pBox.SizeMode = PictureBoxSizeMode.CenterImage; 

雖然這工作的大部分時間,偶爾的圖像將不會恢復到放大:

image still on 'CenterImage' full image

什麼更好的辦法去解決這個問題?

+0

您執行圖像大小調整的代碼是哪個事件? –

+0

@Ephraim'ReSize'事件 –

回答

1

如何最大尺寸設置爲圖像尺寸:

pictureBox1.MaximumSize = pictureBox1.Image.Size; 

結合:

pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; 
+0

我也可以使用這種方法以某種方式保持圖像居中? –

+0

@AnalogMoose您可以將圖片框本身置於面板中間。 – user3185569

0

你應該如果(pBox.Width * pBox.Height < pBox.Image使用」 .Width * pBox.Image.Height)「if()語句。 pBox的兩個尺寸都作爲高度,可能會導致一些問題。檢查它