Loading an Image from Resources in an Unreferenced Assembly
I have two silverlight assemblies, CaseManager.Applet and CaseManager.Applet.Sample. The Sample assembly has a reference to the base Applet assembly. The sample assembly has an embedded resource png image. The base applet assembly has a view xaml that I wish to display that image programmatically.
In the sample assembly I have a bit of code that creates a Uri like so:
private void RegisterIcon()
{
var icon = new AppletIcon()
{
ImageUri = new Uri("CaseManager.Applet.Sample;component/images/guiness_2.png", UriKind.Relative),
ModuleType = GetType(),
Text = "Sample Module"
};
container.RegisterInstance("SampleModule", icon);
}
When I execute this code all the properties of ImageUri throw InvalidOperationException. I am not sure why. I have a hunch that it has to do with the way the assemblies are referencing each other in one direction. Anyone have suggestions?
Update: ok I found it by using the googles searching for WPF instead of silverlight info. The following code does the job:
ImageUri = new Uri("/CaseManager.Applet.Sample;component/images/guiness_2.png", UriKind.Relative),
Things to note here:
- The slash at the start of the Uri string.
- The short name of the assembly containing the resource.
- the ;component/ section.
From there it is basically the path inside your project to the image. Hope this helps someone else.
For what it was worth I was missing the very first slash. /facepalm