準備
1. C:\Windows\Web\Wallpaper\Theme2\img8.jpgファイルをソリューションエクスプローラー内のプロジェクトツリーにドラッグ & ドロップします。
2. ソリューションエクスプローラーで、この img8.jpg を選択して、プロパティのビルドアクションを「埋め込まれたリソース」に変更します。
デザイン
1. フォーム (Form1) にボタン (button1) を配置します。
サンプルコード (C#)
// 名前空間の追加 using System.Reflection; using System.IO; // コード private void button1_Click(object sender, EventArgs e) { Assembly assm = Assembly.GetEntryAssembly(); Stream stream = assm.GetManifestResourceStream("WindowsFormsApplication1.img8.jpg"); this.BackgroundImage = Image.FromStream(stream); }
解説
ビットマップファイルの内容がフォームのバックグラウンドに表示されます。
このサンプルでは、まずアセンブリ情報全体を取得しています。そのアセンブリ情報の中から、ビットマップファイルをストリーム経由で抽出します。ちなみに、このビットマップファイルのフルネームは名前空間 + "." + ビットマップファイル名となります。
最後にストリームをビットマップに変換して、フォームのバッググラウンドに設定します。
一応、EXE だけを別の場所にコピーしたところ、同じ結果になりました。これにより、ビットマップファイルが EXE に埋め込まれていることが確認できました。
結果
動作確認環境
Visual Studio 2015 Professional (C# 6.0)