C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

ツリー一括表示

PictureBox上に画像を表示 /クローン人間 (21/08/19(Thu) 15:51) #97997
Re[1]: PictureBox上に画像を表示 /魔界の仮面弁士 (21/08/19(Thu) 16:27) #97998
  └ Re[2]: PictureBox上に画像を表示 /クローン人間 (21/08/19(Thu) 19:03) #97999 解決済み


親記事 / ▼[ 97998 ]
■97997 / 親階層)  PictureBox上に画像を表示
□投稿者/ クローン人間 (1回)-(2021/08/19(Thu) 15:51:45)

分類:[.NET 全般] 


VB.NETに関する質問です。


https://dobon.net/vb/dotnet/graphics/pictureboximage.html
https://dobon.net/vb/dotnet/graphics/pictureboximageanddrawimage.html

ここにあるようなコードを使って、
PictureBox上に画像を表示することができます。


一方で、一度、ビルドしてEXEファイルを実行しないと画像を確認することができません。

デザイナ上で画像を表示して確認したい場合にはどのようにすれば良いですか?

また、そのときにPictureBoxのアスペクト比を画像のアスペクト比と一致させたいのですが
どのようにすれば良いですか?





[ □ Tree ] 返信 編集キー/

▲[ 97997 ] / ▼[ 97999 ]
■97998 / 1階層)  Re[1]: PictureBox上に画像を表示
□投稿者/ 魔界の仮面弁士 (3166回)-(2021/08/19(Thu) 16:27:57)
No97997 (クローン人間 さん) に返信
> 一方で、一度、ビルドしてEXEファイルを実行しないと画像を確認することができません。
> デザイナ上で画像を表示して確認したい場合にはどのようにすれば良いですか?

直接切り替えるような方法はありません。

実行時ではなく、デザイン時の動作を定義したい場合には、
PictureBox を Form に貼って使うのではなく、
「PictureBox を継承した独自のクラス」を作成し、
その独自コントロールを Form に貼って使うという手法になります。
(クラス設計についての最低限の知識が要求されますね)

> また、そのときにPictureBoxのアスペクト比を画像のアスペクト比と一致させたいのですが
> どのようにすれば良いですか?
たとえば PictureBox の SizeMode プロパティだと、
[StretchImage] だとアスペクト比は維持されませんが、
[Zoom] 指定なら、PictureBox 内に収まるようにアスペクト比を維持して表示され、
[AutoSize] 指定なら画像サイズにあわせて PictureBox そのもののサイズが変化しますよね。

OnPaint メソッドをオーバーライドしている場合や、Paint イベントで描画している場合は
SizeMode の動作は直接影響しないので、画像の縦横のサイズからアスペクト比を算出し、
「PictureBox 内に収まるようなサイズで描画する」か
「画像のサイズに合わせて PictureBox をリサイズする」処理を実装しましょう。
[ 親 97997 / □ Tree ] 返信 編集キー/

▲[ 97998 ] / 返信無し
■97999 / 2階層)  Re[2]: PictureBox上に画像を表示
□投稿者/ クローン人間 (2回)-(2021/08/19(Thu) 19:03:24)
https://docs.microsoft.com/ja-jp/dotnet/api/system.windows.forms.picturebox.image?view=net-5.0

このページの方法でうまくいきました。

ありがとうございます。


解決済み
[ 親 97997 / □ Tree ] 返信 編集キー/


管理者用

- Child Tree -