rijndael - Mi 28.11.07 12:07
Titel: Image aus Assembly laden
Hallo,
ich möchte ein Image aus einem Assembly, in dem es als Resource einkompiliert ist, programmatisch laden. Im XAML-Code kann man das bekanntlich so machen:
<Image Source="/MyResourcesAssembly;component/icons/myimage.png" Width="16" Height="16" ... />
Wenn ich das ganze nun programmtisch versuche mit:
C#-Quelltext
1: 2: 3: 4: 5: 6:
| private Image m_Image; ... BitmapImage img = new BitmapImage(new Uri("/MyResourcesAssembly;component/icons/myimage.png")); m_Image = new System.Windows.Controls.Image(); m_Image.Source = img; ... |
dann kommt es zur Exception, weil die URI in einen Filesystem-Pfad übersetzt wird. Was ich aber tun möchte, ist das Image aus dem Assembly laden. DAs Image ist nicht im Resourcen-Objekt des Assembly eingetragen, sondern als Datei hinzugefügt und hat den Typ "Resource", wird also mit einkompiliert.
danke
rijn
Moderiert von
Christian S.: C#-Tags hinzugefügt
rijndael - Fr 30.11.07 09:51
Hallo,
hat super funktioniert. Was auch geht ist folgendes:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7:
| Assembly asm = Assembly.LoadFile("Myresources.dll"); BitmapImage bmp = new BitmapImage(); bmp.BeginInit(); bmp.StreamSource = asm.GetManifestResourceStream("Myresources.image.jpg"); bmp.EndInit(); m_Image = new System.Windows.Controls.Image(); m_Image.Source = bmp; |
dazu muss das Image allerdings eine "Embedded Resource" sein, von daher ist deine Lösung zumindest für mich deutlich besser.
thx
rijn