从XAML中的另一个程序集的resx文件加载图像

时间:2012-03-13 15:50:11

标签: wpf xaml

我有两个程序集,比如assembly1和assembly2。

在assembly2中有一个XAML文件。在这个XAML文件中,我想创建一个图像。

我想要做的是将此图像的源设置为assembly1中resx文件中的位图。

<Image Name="image1" Stretch="Fill" Source="???" />

如何在XAML中正确引用该位图文件?是否有一个简单的“仅XAML”解决方案?

1 个答案:

答案 0 :(得分:0)

好的,所以我认为没有像“仅限XAML”的解决方案。

相反,我在调用WPF控件的Loaded事件后这样做:

Assembly coreAssembly = Assembly.GetAssembly(typeof (otherAssembly.Resources));
var resourceManager = new ResourceManager("otherAssembly.Resources", coreAssembly);

// get image from core resources
Bitmap completeImage = (Bitmap) resourceManager.GetObject("Complete");

// apply image to WPF image
var memoryStream = new MemoryStream();
completeImage.Save(memoryStream, System.Drawing.Imaging.ImageFormat.Png);
BitmapImage bitmapImage = new BitmapImage();
bitmapImage.BeginInit();
bitmapImage.StreamSource = new MemoryStream(memoryStream.ToArray());
bitmapImage.EndInit();

this.myWpfImage.Source = bitmapImage;