我有一个名为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的方式。不确定,互联网上有很多不同的解决方案到目前为止并没有真正帮助我。任何人都可以帮忙吗?
答案 0 :(得分:1)
您应该将图片文件的构建操作设置为资源,并通过完整Resource File Pack URIs访问它们:
var bitmap = new BitmapImage(
new Uri("pack://application:,,,/GameTools;component/Images/face1.png"));