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 imag
The following works just fine for me:
image.Source = new BitmapImage(new Uri("pack://application:,,,/YourAssemblyName;component/Resources/someimage.png", UriKind.Absolute));
Also you should change the Build Action
of your image from None
to Resource
.
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
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));
"pack://application:,,,
does not change.For more information: see here.
You use this :
Image2.Source = new Bitmap(
System.Reflection.Assembly.GetEntryAssembly().
GetManifestResourceStream("MyProject.Resources.myimage.png"));
Or
Image2.Source = new Bitmap(WindowsFormsApplication1.Properties.Resources.myimage);
I do recommend the second one.
The way you are adding image and then changing its "Build action" to "Resources" will also do the job, But as you have asked for adding and loading from Resources wold be a different approach to achieve the same task. I would liketo provide you a link to read certain msdn articles.
Adding and Editing Resources (Visual C#)