ソリューションにいくつかの画像を追加しました。現在、ソリューションエクスプローラー内のimages\flowers\rose.pngフォルダーの下にあります。この画像を画像コントロールに動的にロードする方法が必要です。
私の現在のアプローチは、タイプ「content」を作成し、「copyalways」プロパティを使用することです。次に、以下のように画像への相対パスを指定します。
Image2.Source = new BitmapImage(new Uri("/images/flowers/Customswipe_b.png", UriKind.Relative));
ターゲットシステムにコピーせずにリソースからロードする方法はありますか?.
以下は私にとっては問題なく動作します:
image.Source = new BitmapImage(new Uri("pack://application:,,,/YourAssemblyName;component/Resources/someimage.png", UriKind.Absolute));
また、画像のBuild Action
をNone
からResource
に変更する必要があります。
リソースエディター(ソリューションエクスプローラー、Resources.resxをクリック)を開き、そこに画像を追加できます。次に、Properties.Resources.ImageId
を使用してBitmap
として簡単にアクセスできます。
http://msdn.Microsoft.com/en-us/library/3bka19x4(v = vs.100).aspx
URIの正確な構文を見つけるのにいくつか問題があったので、以下で詳細を参照してください。
画像(_myImage.png
_)が(ルートディレクトリからの)サブフォルダ "images"にある場合、正確な構文は次のとおりです。
_image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/myImage.png", UriKind.Absolute));
_
画像がサブフォルダ_images/icon/
_(ルートディレクトリから)にある場合、構文は次のとおりです。
_image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/icon/myImage.png", UriKind.Absolute));
_
"pack://application:,,,
_は変更されないことに注意してください。詳細については: ここを参照 。
イメージを追加してからその「ビルドアクション」を「リソース」に変更する方法も機能しますが、リソースからの追加とロードを要求したので、同じタスクを実行するための別のアプローチになります。特定のmsdn記事を読むためのリンクを提供したいと思います。
あなたはこれを使用します:
Image2.Source = new Bitmap(
System.Reflection.Assembly.GetEntryAssembly().
GetManifestResourceStream("MyProject.Resources.myimage.png"));
または
Image2.Source = new Bitmap(WindowsFormsApplication1.Properties.Resources.myimage);
私は2番目のものをお勧めします。