WPF - 加载存储在另一个DLL中的图像

时间:2015-10-14 13:55:01

标签: c# wpf image

我有一个名为GameTools的游戏通用工具的dll。在那里我还有一个包含一些图像的文件夹,它们被设置为Embedded Resource(我希望它们透明地随身携带)。这些图像代表骰子的两侧。它们应该加载到公共列表中。像这样:

public List<ImageSource> faceImages = new List<ImageSource>();
public void init()
{
    //there is a known set of images, so I can load them one by one
    faceImages.add(new BitmapImage(new Uri("/GameTools;component/Images/face1.png", UriKind.Relative)););
    faceImages.add(new BitmapImage(new Uri("/GameTools;component/Images/face2.png", UriKind.Relative)););
    ...
}

然后我有一个WPF组件,它是骰子本身(名为Dice),它使用对GameTools的引用。

dice我有一个图像(img)和一个“滚动骰子”的功能。应该看起来像:

public void roll()
{
    int face = random.Next(0,6);
    img.Source = LOAD_THE_REFERENCE(face);
}

有人如何编写此LOAD_THE_REFERENCE代码?或者问题在于我将图像“导入”GameTools的方式。不确定,互联网上有很多不同的解决方案到目前为止并没有真正帮助我。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您应该将图片文件的构建操作设置为资源,并通过完整Resource File Pack URIs访问它们:

var bitmap = new BitmapImage(
    new Uri("pack://application:,,,/GameTools;component/Images/face1.png"));