加载图像存储在另一个dll
本文关键字:另一个 dll 存储 图像 加载 | 更新日期: 2023-09-27 18:17:52
我有一个名为GameTools的通用工具的dll。在那里我也有一些图像的文件夹,它们被设置为嵌入式资源(我希望它们透明地携带dll)。这些图像代表骰子的两面。它们应该被加载到一个公共列表中。像这样:
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的方式上。不确定,网上有很多不同的解决方案,但到目前为止并没有真正帮助我。有人能帮忙吗?
您应该将映像文件的Build Action设置为Resource,并通过完整的资源文件包uri访问它们:
var bitmap = new BitmapImage(
new Uri("pack://application:,,,/GameTools;component/Images/face1.png"));