2016-07-15 8 views
0

元の画像より大きくないウィンドウのサイズに応じて自動的に調整する画像をPictureBox内で作成します。 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

@ReSize'イベントをエフライム –

答えて

1

:との組み合わせで

pictureBox1.MaximumSize = pictureBox1.Image.Size; 

:(pBox.Width * pBox.Height < pBox.Image場合

pictureBox1.SizeMode = PictureBoxSizeMode.Zoom; 
+0

このメソッドを使ってイメージを中央に保持することもできますか? –

+0

@Analogパネルの内側に画像ボックス自体を配置することができます。 – user3185569

0

あなたは」使用する必要があります.Width * pBox.Image.Height) "if()ステートメント。 pBoxの両方の寸法は高さとみなされ、何らかの問題を引き起こす可能性があります。それを確認してください

関連する問題