PictureBox
は、複数の異なるサイズを持つことができます(画面の解像度やウィンドウの状態などに依存します)。私が望むのは、image
の寸法(幅または高さ)のいずれかがPictureBox
のそれぞれの寸法を下回ると、image
をPictureBox
に収めることです。PictureBoxが画像よりも小さい場合、画像をPictureBoxに合わせる
例:image
の幅がPictureBox
のそれよりも大きいが、image
の高さがPictureBox
のそれ未満である場合、それはのものに等しくなるまで、それはimage
幅を変更しますPictureBox
、元のアスペクト比を維持し、image
の中央に配置します。
PictureBox
がimage
のサイズよりも大きい場合、画像は単に中央に配置されます。私がPictureBoxSizeMode.AutoSize
とした部分と、image
とPictureBox
のサイズに基づいてimage
を中心にするコードがあります。
picbx.ImageLocation = "Image path here";
picbx.SizeMode = PictureBoxSizeMode.AutoSize;
picbx.Anchor = AnchorStyles.None;
picbx.Location = new Point((picbx.Parent.ClientSize.Width/2) - (picImage.Width/2),
(picbx.Parent.ClientSize.Height/2) - (picImage.Height/2));
picbx.Refresh();
私が考慮する必要がないことは、現時点ではサイズ変更していることです。このウィンドウではサイズ変更が許可されていないため、初期ロード以外の状況を考慮する必要はありません。
私は近くにヒットするように見える多くの記事を見つけましたが、完全に機能するものはありません。 ストレッチはimage
がPictureBox
よりも大きい場合のために正常に動作してズームimage
、AutoSizeプロパティは、コンテナのサイズに基づいてサイズを変更せず、をスキューが、私はimage
の増加からズームを防止するための方法を発見していましたサイズはPictureBox
に合っています。
私はpicbx.ImageLocation
に設定するとpicbx.Image
プロパティを設定していないよので、私はする必要があります寸法(幅または高さ)に基づいてPictureBox
のimage
内側のサイズを変更する方法を把握するために、まだましサイズ変更のための参照。
を私がまさに必要。ちょうど正しい組み合わせが必要でした。ありがとう! – Hank
デフォルトの方法ではなく特定のディメンションに合わせてズームを設定する方法はありますか?ズームしたいと思ったらズームのような高さではなく幅にズームするのですか? – Hank
私はそうは思わない。両方のディメンションに合わせて縮尺を変え、元の画像の比率を維持します。これは理にかなっています。特定の次元に合うのはどういう意味ですか? 1つをフィットし、他のカット? –