public partial class MainWindow : Window
{
System.Reflection.AssemblyName aName;
System.Reflection.Assembly asm;
public MainWindow()
{
InitializeComponent();
aName = System.Reflection.AssemblyName.GetAssemblyName(
@"C:\Users\Adam\Documents\Visual Studio 2012\Projects\WPFResources\WPFResources\bin\Release\WPFResources.dll");
asm = System.Reflection.Assembly.Load(aName);
string[] manifest = asm.GetManifestResourceNames();
image1 =
}
这就是我如何让它发挥作用的地方。在Winforms中,我只是创建一个新的位图,并在位图的构造函数中传递来自DLL的流及其清单位置......
答案 0 :(得分:1)
您可以使用BitmapImage.StreamSource
,它允许您从System.IO.Stream创建图像。
看看这是否适合你
asm = System.Reflection.Assembly.Load(aName)
string[] manifest = asm.GetManifestResourceNames();
using (UnmanagedMemoryStream stream = (UnmanagedMemoryStream)asm.GetManifestResourceStream(manifest[0]))//The Index of the Image you want to use
{
using (MemoryStream ms1 = new MemoryStream())
{
stream.CopyTo(ms1);
BitmapImage bmi = new BitmapImage();
bmi.BeginInit();
bmi.StreamSource = new MemoryStream(ms1.ToArray());
bmi.EndInit();
image1.Source = bmi; //The name of your Image Control
}
}
答案 1 :(得分:0)
创建一个ResourceManager
,在ctor中给他'基本名称' - 资源文件的名称(程序集可以包含许多资源集),以及程序集在哪里查找资源。
ResourceManager resMan= new ResourceManager("MainWindowResources",asm);
Stream imageStream= resMan.GetStream("Image1");