プロジェクトに画像を埋め込む
必要になるたびにぐぐってる気がするのでメモ
アイコンファイルやシステムで利用する画像を埋め込む方法。
プロジェクトに追加しただけだと、exeと同じ場所にコピーされてしまうんですよね。これは不便!
ソリューションエクスプローラでプロジェクトに追加したファイルのプロパティを開き(今回はMy.icoというファイルを用意)、ビルドアクションを、埋め込まれたリソースに変更します。
で、利用する場合のコードは以下(タスクトレイのアイコンに設定しています。)
tasktrayIconはデザイナですでに追加済みのNotifyIconクラスです。
Assembly myAssembly = Assembly.GetExecutingAssembly().ManifestModule.Assembly; using(Stream s = myAssembly.GetManifestResourceStream("MyNameSpace.My.ico")) { Icon ico = new Icon(s); tasktrayIcon.Icon = ico; tasktrayIcon.Visible = true; s.Close(); }
無事読み込めました。
僕はタスクトレイのアイコンに設定したり、外から読んだ画像と比較させたりして使用しています。