|
■No97997 (クローン人間 さん) に返信 > 一方で、一度、ビルドしてEXEファイルを実行しないと画像を確認することができません。 > デザイナ上で画像を表示して確認したい場合にはどのようにすれば良いですか?
直接切り替えるような方法はありません。
実行時ではなく、デザイン時の動作を定義したい場合には、 PictureBox を Form に貼って使うのではなく、 「PictureBox を継承した独自のクラス」を作成し、 その独自コントロールを Form に貼って使うという手法になります。 (クラス設計についての最低限の知識が要求されますね)
> また、そのときにPictureBoxのアスペクト比を画像のアスペクト比と一致させたいのですが > どのようにすれば良いですか? たとえば PictureBox の SizeMode プロパティだと、 [StretchImage] だとアスペクト比は維持されませんが、 [Zoom] 指定なら、PictureBox 内に収まるようにアスペクト比を維持して表示され、 [AutoSize] 指定なら画像サイズにあわせて PictureBox そのもののサイズが変化しますよね。
OnPaint メソッドをオーバーライドしている場合や、Paint イベントで描画している場合は SizeMode の動作は直接影響しないので、画像の縦横のサイズからアスペクト比を算出し、 「PictureBox 内に収まるようなサイズで描画する」か 「画像のサイズに合わせて PictureBox をリサイズする」処理を実装しましょう。
|