Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Dynamically adding and loading image from Resources in C#

I have some images added to my solution, right now it is under the folder images\flowers\rose.png inside the solution explorer. I want a way to dynamically load this image to my image control.

My current approach is making the type 'content' and use 'copy always' properties. Then i would give relative path to the image like below.

Image2.Source = new BitmapImage(new Uri("/images/flowers/Customswipe_b.png", UriKind.Relative));

Is there any way to make it load from the resource without copying it to the target system.

like image 681
logeeks Avatar asked Oct 18 '12 12:10

logeeks


2 Answers

I had some problems to find the exact syntax for the URI, so see below more details :

If your image (myImage.png) is located in a subfolder "images" (from the root directory) , the exact syntax is :

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/myImage.png", UriKind.Absolute));

If your image is in the subfolder images/icon/ (from the root directory) , the syntax is :

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/icon/myImage.png", UriKind.Absolute));
  • Note that the part "pack://application:,,, does not change.
  • Be sure to set the "Build action" to "Resources"

For more information: see here.

like image 25
Malick Avatar answered Sep 17 '22 21:09

Malick


You can open the Resource Editor (Solution Explorer, click on Resources.resx) and add the image there. Then you can simply access it as Bitmap with Properties.Resources.ImageId

http://msdn.microsoft.com/en-us/library/3bka19x4(v=vs.100).aspx

like image 151
MrDosu Avatar answered Sep 16 '22 21:09

MrDosu